AMP Up – Converting xwp.co to Native AMP

Our experience converting xwp.co to Native AMP with the AMP WordPress plugin. We’ve been working with Google and Automattic on the AMP for WordPress plugin for a little over 6 months. We were brought onboard to improve the functionality and user experience of the plugin and bring it inline with the many recent enhancements of the … Continue reading AMP Up – Converting xwp.co to Native AMP

Speed Up PHPUnit Tests by Emptying Uploads Directory

tl;dr Periodically empty out the uploads directory in your WordPress dev environment to speed up PHPUnit tests. Over the past few months of working on the AMP plugin for WordPress, I’ve been noticing that PHPUnit has been running slower and slower over time. Well, today this frog jumped out of the boiling water: I decided … Continue reading Speed Up PHPUnit Tests by Emptying Uploads Directory

Client-side vs. Server-side Header Bidding

The goal of header bidding is to ensure that multiple ad networks and ad exchanges can compete on price for a particular ad slot on a website which in turn increases the publishers’ revenue.

There are several header bidding implementations and understanding the differences is necessary when evaluating and finding the best fit for each publisher. Continue reading Client-side vs. Server-side Header Bidding

How I Learned To Stop Worrying And Love Accelerated Mobile Pages (AMP)

People have called me many things, but when it comes to the Open Web, I’ve been described as a zealot. Imagine a Portland hipster’s post-Trump-tweet outrage, and channel all that fire and fury into defending humankind’s greatest achievement: The Internet. I’ll be honest, when I first heard about “Google AMP,” it was framed as a … Continue reading How I Learned To Stop Worrying And Love Accelerated Mobile Pages (AMP)

Improving Google Page Speed isn’t enough

Wanting to improve your Google Page Speed rating is great! It shows that you care about your visitors and their time, but clocking a green 90-100 score is only one step on the journey to better page performance You want a better user experience, and Google Page Speed is only part of that story. It … Continue reading Improving Google Page Speed isn’t enough

Ignoring files in a Git repo without touching .gitignore

Over several years now I’ve used Git in developing patches for WordPress core, for which we committers still use SVN to actually commit patches, for better or worse. While working on patches in a fork, however, Git is definitely for better. I’ve found a lot of value in using GitHub for reviewing and collaborating on … Continue reading Ignoring files in a Git repo without touching .gitignore

Previewing content changes across multiple site templates

A couple days ago Helen Hou-Sandí live tweeted her first time trying out Gutenberg, the feature plugin for the next generation WordPress editor. One of her tweets stood out to me and started a thread: tl;dr You can use the Customize Posts plugin to add and edit posts in the Customizer and preview your changes—to the title, … Continue reading Previewing content changes across multiple site templates

Customize Snapshots 0.6 Release

Version 0.6 of our Customize Snapshots plugin has been released; it comes packaged with a set of new features that impact the way the plugin empowers more complex editorial and site management workflows. In short, the plugin provides a UI for managing Customizer changesets, including saving changesets as named drafts, scheduling them for publishing, inspecting them in … Continue reading Customize Snapshots 0.6 Release

Defining “context” in the WP REST API

I got a question from a colleague last week regarding the context parameter in the WP REST API: In which cases would the request be a GET request but the context be edit? I was thinking that perhaps if an object is edited and a child is embedded, then maybe getting that child would be with … Continue reading Defining “context” in the WP REST API

Reducing command line args required for running PHPCS

When you run JSHint, the only thing you need to put on the command line is: jshint. No additional arguments are required to check JS files under the current directory, and it automatically looks for a .jshintrc file for its configuration. For years now when I’ve wanted to similarly run PHP_CodeSniffer to check the adherence of some PHP code against coding standards, … Continue reading Reducing command line args required for running PHPCS