Blog

wp_mail() is NOT broken

So why is everybody trying to fix it? I’ll try to explain. A few of months ago I started working on a new open source project called Sail, which is a CLI tool to provision WordPress servers on DigitalOcean. I wanted the best possible e-mail configuration I could have, fully transparent to the WordPress user, so I did some research. A lot of research actually. The first thing I noticed, is...

Configuring Mailgun for WordPress with Sail CLI

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...

Rsync’s link-dest: Not Great for Deployments

TIL: rsync’s --link-dest is pretty bad for deploying code to production servers, unless you can get some fancy copy-on-write going on. Rsync is probably the best utility to transfer large numbers of files from one location to another, quickly and effectively. The --link-dest argument allows you to hard-link files from a different destination if they haven’t changed, saving both time...

LIVE: Creating a Caching Plugin for WordPress from Scratch

Join me live as I write a page caching plugin for WordPress from scratch. For educational purposes of course, as part of our advanced WordPress training program over at Koddr.io. I’ll be tearing apart some existing caching plugins to find out how they work, then build my own using similar concepts. I’ll be doing a deep dive into WordPress’ advanced-cache.php drop-in and covering...

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...

Goodbye Automattic

You might have heard that I left Automattic. It’s true. It’s the best company I’ve ever worked at. And by far the longest. Almost 9 years! I’ll miss my friends an coworkers. I’m not leaving WordPress. In fact, my next impact will be around hosting for WordPress specifically, maybe WooCommerce, I’m not sure yet. It’s going to be a fun challenge. I’ll...