Konstantin Kovshenin Launches Sail, a CLI Tool for Deploying to Digital Ocean

Last week, Konstantin Kovshenin launched Sail, a CLI tool for deploying WordPress applications to the DigitalOcean cloud. The project is free to use and open source. However, he has plans for an upgraded premium experience down the road.

Kovshenin cited speed and efficiency as the two primary reasons developers should give his new tool a try. “You don’t need to wander around web UIs to launch a new server and install WordPress. You just sail init. You don’t need to open your SFTP GUI client to upload changes to your application. You just sail deploy.”

He also said that because it is a simple CLI, it will integrate well with existing developer tools and services like Gulp, webpack, GitHub Actions, and more.

“I’m a DIY guy when it comes to WordPress hosting, so I like to get my hands dirty with servers, code, configuration, and everything else,” wrote Kovshenin in the announcement post. “I’ve been using virtual servers at DigitalOcean for small WordPress projects for a very long time, and it’s great, and also very affordable.”

He had grown annoyed doing routine maintenance and configuring servers for new projects. This led him to write many scripts for handling each piece of this over the years. Over the past couple of months, he cleaned them up and packaged them as a single CLI tool called Sail. It works across Linux, macOS, and Windows.

While he lists some advantages of using Sail over the competition in the announcement post, he thinks the benefits come from using Sail with other developer tools.

“For example, if you already use Git and GitHub, Sail can automatically deploy your application whenever you push to your main branch,” he said. “If your project is built with Gulp and webpack, you can ask npm to deploy your application after a successful build.”

The CLI tool does not make assumptions about the development environment. Developers are free to use whatever setup they are accustomed to, such as Vagrant/VirtualBox, XAMP/MAMP, Local, Docker, or a custom setup.

“You can use it without a local development environment at all and just cowboy-code your way through, and Sail will help you deploy with confidence and roll back when you’re overly confident,” he said.

The following is a short video demo:

The Future of Sail

For the short term, Sail only works with DigitalOcean. However, Kovshenin plans to support more providers down the road as he looks into “more complex architectures.” However, he said it is not a high priority at the moment.

“DigitalOcean has the best documentation, hands down,” he said. “The simplicity of their APIs just blows you away. And that simplicity extends to their pricing as well, which made it quite an obvious choice.”

While the tool is free, he will offer a Sail Premium service. There is currently no launch date for it. Kovshenin said he was gauging overall interest before diving in. However, he does have an Early Access signup form. Those who use it will gain free passes during the beta period and possibly a discount at launch.

Right now, his focus is on building the core Sail features, which he says will always be free.

“The biggest new feature I’m excited about right now is Blueprints,” said Kovshenin. “This is going to be a YAML manifest file, which will describe the desired application environment and state, including which WordPress plugins to install and activate, which themes and settings, as well as any additional server software and configuration, such as mail, firewall, etc. And to get all of this you’ll just need to specify the blueprint file to sail init.”

The goal is to allow users to build, reuse, and even share their blueprints. Sail itself will even make common configurations available. A single blueprint could include WooCommerce, Stripe, Storefront, Jetpack, Redis object caching, mail relay via MailGun, and more.

“Other features on the list include sub-projects, staging/cloning, automatic and remote backups, profiling, monitoring, and malware/vulnerability scanning,” said Kovshenin.

He is hoping for more feedback on missing features that could make the project more useful for others.