Back in August, together with Buddy. Works, we held a webinar to share our workflow with the wider WordPress community. In this article, we want to give you a rundown on the tools from Buddy. Works and Kinsta that we use at Osom, and explain what makes them true time-savers.
In some ways, web development is no different to building a house. To get a solid start, you need to complete your toolbox. The better tools you get, the better the effects – no way around it. So, having your IDE all set, you still have to cover a local environment and hosting. That’s where we at Osom turned to DevKinsta, a tool crafted by leaders in the WordPress hosting scene.
DevKinsta offers a complete local web development environment based on Docker, which is used to containerize its services in their own environments, without interrupting the host OS. The stack includes: Nginx, MySQL and PHP (in versions 7.x and 8.x – interchangeable from within the app).
Nginx is an open-source web server and one of the main types of production environments. It’s set for the lowest possible memory usage – instead of creating new processes for each query, it offers an asynchronous approach. It found its way to DevKinsta primarily because of Kinsta’s preference for hosting projects on this server.
MySQL, also open-source, is a relational database management system. Although in this case, Kinsta’s app and hosting have MariaDB, the drill is pretty much the same. MariaDB, being a fork of MySQL, allows the software to be developed outside the mainstream. It also provides enhanced performance in certain areas.
PHP is the code foundation for WordPress. W3Techs claims that it’s used in over 78% of all web pages. As it’s still being actively developed (despite many believing it’s dying), it’s available in many versions, such as 5.4, 7.x and 8.x. At present, on Kinsta’s hosting, there are 3 versions to choose from: 7.3, 7.4 and 8.0.
A few clicks - that’s literally all it takes to set up a local environment based on Nginx and MariaDB with pre-installed WordPress (single-site or multi-site) with DevKinsta. So what’s the profit? By hooking up your account to the local environment, you can access an exact copy of what’s currently hosted. And you can be sure that both work - and look - the same. With minimal effort!
And when you need to import or export a database, you can do that using Adminer, a great and intuitive tool for managing SQL databases, which can be called from the app.
This way, you can export a database from the production environment by using phpMyAdmin and import it locally. All that’s left to be done is modifying the links from the production environment to the local version. This is where simple command lines come in handy. What we use at Osom (and recommend) is wp-cli, a command-line solution for managing sites.
So, when modifying a specific string in the database, you can do it directly using the command “wp search-replace”. An example of what the command looks like, based on https://osomstudio.com as the production domain and https://osomstudio.local as local:
wp search-replace "osomstudio.com" "osomstudio.local" --all-tables --network --verbose
The last option, [--verbose], prints rows to the console as they’re updated, allowing you to see which tables contain the changes. [--all-tables] and [--network] cover potential issues occurring when tables don’t have a registered prefix or in case of multisite install.
However, replacing can also be covered in an easier way, using just Kinsta’s resources:
“One of the reasons we recommend Kinsta (as a hosting service) to everybody is the fine tools it combines – for example, search and replace. We don’t always have to type the ‘search-replace’ command in wp-cli, it can be done directly on Kinsta’s page. Of course you can do it because Kinsta installs wp-cli for all hostings”
– Bartek Nowak, Technical Lead at Osom Studio
For many clients, we offer a web maintenance service – DevKinsta does a good job in this area too. Using the solution, you can easily run and test your plugins and themes. It also allows you to locally simulate a different version of PHP and WordPress to verify its compatibility with your website.
For us, it’s most important that our clients can always easily access the website on the production server, so this feature to a great extent facilitates our work.
When you’re sure that all the changes you’ve made are safe and compatible, all that’s left is sending them straight to the server. For this purpose, we use the Buddy.Works automatization platform, which we also showcased on the webinar. It allows you to create projects with pipelines for each specific environment.
Every pipeline has its actions, which are performed by Buddy, and then the full package is forwarded to the server by the FTP.
An example of such an action package:
Using this methodology, we’re able to eliminate a majority of potential errors in the deployment process.
Furthermore, we save a fair share of our time, as putting up each element of DevKinsta isn’t necessary – Buddy hands us out on this, allowing us to pass the product on to the client much faster. It’s also safer, as you can be 101% sure that the local environment is a direct copy of the production, eliminating any potential compatibility issues. Finally, ruling out the human factor turns out to be a major benefit, reducing the risk of complications in the deployment process, as the files are transferred automatically.
As mentioned above, we held a webinar on maintaining a fluid and automated WordPress workflow using tools from DevKinsta and Buddy. We’ll show you how we work at Osom, explaining each step with visual examples.
For example, you’ll get to see:
So, if you’re keen on learning how to:
… and you feel like you’re ready to optimize and refine your deployment flow by giving it a powerful speed boost to satisfy your clients, watch our webinar!