DevKinsta – the perfect flow for your WP apps. Webinar by Osom and Buddy
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.
It makes life easier
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://www.osomstudio.com as the production domain and https://osomstudio.local as local:
wp search-replace “www.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.
Deployment with Buddy.Works
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:
- Composer update (using PHP actions) – when calling a composer update, you can update packages on the server. We also use WPackagist, a PHP package repository that lets you update your plugins by modifying lines within the composer.json file.
- npm run build (using Node.js actions) – we always go for webpack or parcel for our projects. This action allows you to compile files on the server side, so you don’t flood the repository with compressed files.
- Visual Test – every time a specific path is called, we check whether it results in unexpected changes to the website’s visual. The simplest way to do that is by using comparison tests based on screenshots. Buddy shows how the website looked before and after implementing the changes, asking you whether you accept the outcome and want to proceed.
- SFTP transfer – transferring files to the selected target server.
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.
More on the webinar
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:
- The benefits of using Bedrock,
- How to install and update plugins using WPackagist,
- Creating new WordPress instances using DevKinsta,
- Using Timber to facilitate creating “templates” with Twig.
So, if you’re keen on learning how to:
- Use DevKinsta as a local development environment,
- Create WordPress related Pipelines,
- Automate moving files and databases between environments,
- Run basic tests after each deployment to check the website quality…
… 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!