If you’ve spent any time developing custom solutions for WordPress, you’re probably familiar with this pain point:
Syncing local and development sites.
In order to work on this site without affecting visitors, I transfer it to my local development environment. After my changes are complete, I push my changes to the live site you’re reading now.
In theory, it’s all very simple, but in practice, it’s usually a nightmare.
For example, most plugins advertised with this functionality only work for tiny websites. I’ve had to refund multiple plugins because they simply can’t handle the transfer size of a mid-sized website.
As of now, I use two separate products for pushing/pulling database changes and file changes for this site. These products work well, but they cost nearly $400/year.
I’ve been dreaming of a simpler, all-in-one solution, and I may have just found it in DevKinsta.
What is DevKinsta?
If you’ve done any WordPress development, you’ve likely used XAMP or MAMP to set up your environment.
DevKinsta is also a local development suite but streamlined for WordPress use.
With DevKinsta, you can quickly create a local WordPress install on your computer. This allows you to work on custom themes and plugins you’re developing in a private, controlled environment.
DevKinsta also allows you to download sites directly from your Sites list in your Kinsta account.
As I mentioned earlier, you can also push your local site to your live server, but instead of telling you about it, let’s cover the setup process so you can see it for yourself.
How to use DevKinsta
DevKinsta is a desktop application, so the first step is to download it from their site.
When you boot it up for the first time, DevKinsta will install the dependencies it needs and prepare its configuration.
In the interest of transparency, I did experience an error during the Docker installation step.
Clicking the error message took me to a support page where they suggested I install Docker manually. I did so, and after rebooting DevKinsta, the remainder of the installation completed successfully.
Once you finish installing DevKinsta, this is the first screen you’ll see:
You can create a brand new WP site for development purposes or import a site from Kinsta. There’s also an option to create a custom site, and this just lets you customize attributes of the install like the PHP version and database name.
If you click the import option, you’ll be asked to login.
Then you’ll find a list of all your Kinsta sites. Select the site you’d like to import and click the “Import site” button to begin the process.
You’ll be redirected to the site’s dashboard where a progress indicator keeps you informed on the current state of the import.
For small sites, the import takes about one minute.
Once the import is complete, you can explore the various features available in the dashboard. Since DevKinsta is an extremely simplified development tool, there are just a few settings, but they’re all quite powerful.
One of the most useful features is the ability to enable SSL locally.
Your live site most likely has SSL enabled, and this is usually a pain to configure locally. And without running SSL locally, you’ll get “mixed content” errors and all sorts of other issues on your development site.
Sites in DevKinsta have SSL enabled by default and you can toggle it on/off with a single click.
The other incredibly useful feature that comes included out-of-box in DevKinsta is the built-in email inbox. This is possible thanks to the integrated SMTP server and email inbox in the DevKinsta dashboard.
When viewing one of your sites, you can click the email icon in the left sidebar to reach the inbox.
You’ll see a small red bubble over the email icon when there unread emails, and here’s a look at what an email looks like in the interface:
Having a local inbox is extremely helpful, especially for eCommerce stores and other sites that send lots of transactional emails. It makes it easy to edit and review your purchase receipts and “thank you” emails. It’s also imperative if you’re building a plugin that sends emails.
Now that you’ve seen how to import and run a site locally using DevKinsta, let’s turn to the most exciting feature: pushing to remote installs.
How to push your site to staging
When you’re finished with your updates, you can push your changes to your live site.
DevKinsta requires you to push your local site to a staging site first. This takes a bit longer but gives you a chance to test your site on a Kinsta-hosted environment before going live.
If you don’t have a staging site prepared, visit your site in your My Kinsta dashboard and use the “Change Environment” dropdown at the top-right to select the staging environment.
Then click this button to spin up a new staging site:
Once the staging site is ready, you can press the “Push to staging” button to begin the process.
On the next screen, you’ll see a list of all your sites including live and staging. Select the appropriate staging environment for your site.
After you select the staging environment, you’ll see one final page where you can review your deployment and then click the “Push to Staging” button.
The process runs quickly, especially for smaller websites. You’ll see a similar progress indicator at the bottom right of the dashboard letting you know what step you’re on.
Once the push to your staging site is complete, you can review the staging site and make sure everything is working as expected.
The final step is to push the staging site to your live site from the Kinsta Dashboard:
Deployment processes can be complex and unwieldy, but Kinsta has made it extremely simple with their DevKinsta tool.
With DevKinsta, there’s an opportunity to streamline many applications and plugins into one tool, and so far, I love what the Kinsta team has done with this app.
While it’s an awesome product that I expect will only get better, there are some areas that I think could use improvement.
How DevKinsta can improve
The current push/pull system is simple by design, but as of now, it’s a bit too simple.
I’ve started using DevKinsta for some of my sites, but there is one enhancement I need, in particular, before I can ditch my other tools entirely.
As of now, pushing a local site to staging moves all database entries and all files. This is a deal-breaker for an eCommerce website like this one.
The problem is that customers are still visiting the live site and purchasing products. If I spend 24 hours on a change locally and then push my local site live, it’s going to erase those customer records.
DevKinsta can solve this issue entirely by allowing users to push only file changes, instead of always pushing all database and file changes. Pushing specific files would be cool, but simply preventing database overrides would be enough to make it usable for eCommerce websites.
DevKinsta works well for my static sites and I also use it to import this website locally. I’m just sticking to my existing tools, for now, to push changes to my production site.
How to get started with DevKinsta
If you liked what you saw in this post, you can get started with DevKinsta by downloading it here:
It is completely free to use, so there’s no harm in trying it out.
Kinsta remains my favorite hosting platform, and I’ve been happy with their product for two years now. If you want to learn more about Kinsta and their performance, I’d recommend checking out my review of their service next:
Thanks for reading today, and if you enjoyed this post, please consider using the buttons below to share it with someone else.