Mailgun is a robust e-mail delivery service with both API and SMTP support, and a generous trial of up to 5000 e-mails/mo for three months. Together with Mailgun, we’ve developed a couple of default blueprints for Sail to ease the configuration. mailgun-dns.yaml: this blueprint adds all necessary DNS records for mail delivery through Mailgun, as well as domain verification at Mailgunmailgun...
Fun with Blueprints in Sail CLI for WordPress
Blueprints allow Sail users to define an environment, where their WordPress applications will be provisioned. Currently blueprints support plugins (wp.org or custom), themes, options and wp-config.php constants. In future updates we’ll add support for Redis/Memcached setups, Mail, security (fail2ban, etc.) and much more. Possibly some DigitalOcean features too, like floating IPs and volumes...
I’m LIVE: An Introduction to Sail for WordPress
I’m LIVE on YouTube and Twitch right now, giving an introduction to the new Sail CLI tool I built, to provision, deploy and manage WordPress applications in the DigitalOcean cloud.
Come say hi on YouTube and Twitch.tv. Don’t forget to subscribe/follow!
Push-to-Deploy with Sail and GitHub Actions
Sail supports deploying WordPress out of the box, without the need of Git or any other source code management tools. This is great for solo-projects, or simple applications with very small teams. With larger teams and more complex WordPress applications, you’ll want a more robust workflow, including pull requests, code reviews, etc. GitHub Actions is one of the best CI/CD tools on the...
Sail: Deploy WordPress to DigitalOcean
Sail is a free and open source CLI tool to provision and deploy WordPress applications to the DigitalOcean cloud. Here’s a quick video demo of how it works: 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. I’ve been using virtual servers at DigitalOcean for small WordPress projects for a very...
Upcoming Stream: Creating a Page Caching Plugin for WordPress from Scratch
Have you always wanted to write your own page caching plugin for WordPress? Probably not. In any case, I’ll be doing exactly that, tomorrow at around 9 UTC during a live broadcast on Twitch and YouTube. For educational purposes of course, as part of our WordPress training program at Koddr.io. I’ll be starting from scratch, with a stock WordPress site. I’ll briefly look at how...
What the Queries
I’ve never been a fan of IDEs, complex debugging tools with breakpoints, variable watch lists and all that fancy stuff. var_dump() and print_r() have always been my best friends. Recently I was playing around with the caching arguments in WP_Query, trying to combine that with update_meta_cache() while sticking wp_suspend_cache_addition() somewhere there in the middle, and it quickly became...
WordCamp Russia 2015 Recap
We did it. WordCamp Russia 2015 was held last weekend in the amazing Digital October Center in Moscow. Attendance didn’t change much from last year — we saw about 200 people in person, but a lot of them (~ 60%) were folks who never attended a WordCamp before. The attendees survey showed great results, pretty much in line with last year and with what we expected overall. The pizza was...
An Alternative to @import in WordPress Child Themes
Using Child Themes in WordPress is a great way to modify an existing theme, however the CSS @import directive is slower than it has to be, so you should try and avoid it. Here’s why. If it takes 200ms to load the child theme’s stylesheet, and 200ms to load the parent theme’s CSS, a modern web browser should take approximately 200ms to load both of them, because modern browsers...
WordCamp Russia 2014
The second WordCamp in Russia was a success, with almost 200 attendees and a great lineup of 14 speakers from all over Russia and abroad, including Ukraine and even Germany. I’m not going to go into much planning details like I did last year. Everything was mostly the same, with the exception of having almost twice as many speakers, two tracks, pizza for lunch, a new logo (which everybody...