Blog

Posting Weekly

Full Page Website Screenshots

I previously wrote about taking website screenshots with gowitness. That works great for basic website screenshots. However my most recent project required full page screenshots which, unfortunately, gowitness does not yet support. It’s also unlikely to be added anytime soon. Under the hood, gowitness simply uses headless Chrome, which itself doesn’t support full page…

Migrating a Large WordPress Site

Migrating a WordPress site is generally a straightforward process. Make a backup of the current site, upload files, and import database onto the new web host. Moving a large website requires extra handling. Have you ever attempted to move a site with 100GB of storage? Tell me, how did that go? Of course migrations…

Composer Autoloading within WordPress Plugin

A good way to begin using object oriented PHP classes is by writing everything in a single .php file. That’s completely fine for small WordPress projects. For large projects a single file quickly becomes a disorganized mess. I know from experience building CaptainCore. 🧐 Take a peak at this one gigantic PHP file before…

Learning Vue.js as a WordPress Developer Part 4 – Authenticated Rest API

This post is part of a series called “Learning Vue.js as a WordPress Developer” Part 1 – Getting Started Part 2 – Structured PHP, Rest API and Axios Part 3 – Markdown and WordPress Embeds Part 4 – Authenticated Rest API Part 5 – Decoupled Page Template With Vue.js you fetch new data in…

Removing Legacy ms-files.php from Multisite

I created the following script to automate removing ms-files.php from a legacy WordPress multisite hosted with Kinsta. It was a large network with hundreds of subsites. Doing this manually would have been a huge undertaking. Not familiar with ms-files.php? I don’t blame you. It was a legacy multisite format for handling uploads prior to…

Open Revenue with Calculate ARR

I meant what I said in “Open Source All Of The Things 📖”. Today I’m excited, maybe a little scared, to announce I’m making public Anchor Hosting’s internal revenue numbers. This is made possible with a new tool I created called Calculate ARR. Take a look: YNAB meets Baremetrics but for annual futurecasting.…

Cloudflare 1.1.1.1 with Google Cloud VM Instance

Cloudflare’s 1.1.1.1 is pretty amazing. If you haven’t seen it, you should check it out. It’s a DNS lookup service which is fast, free and private. It works across all of your devices. I recently had DNS issues on a Google Cloud VM: it was causing sporadic failures with my site monitor. I thought…

Is it a Good Idea To Sell WordPress Maintenance Services in 2019?

WordPress has some rough edges and requires routine maintenance in order to run smoothly. This is very comparable to your car 🚗 requiring regular oil changes. It has sparked an entire economy of businesses attempting to solve WordPress maintenance. From hosted maintenance tools like ManageWP, to 365/24/7 total maintenance plans like WP Buffs, to…

Multisite Optimizations and Jetpack Wrangling

Performance issues on a WordPress multisite installation can be a challenge to solve. Over the last few weeks I’ve been making various performance improvements on a rather large multisite network. The following is a recap of those optimizations using SSH and WP-CLI. Remove expired transients across network On a regular site a simple WP-CLI…

Traveling While Running a Business

I spent most of the summer away from home traveling with my family. I wouldn’t call it a vacation, however it did include a few days off from work. This was something I planned to do a year in advance. As long as I have internet access, I can work from anywhere. This was…