Skip to Main Content


The Gutenberg that could have been

I have been very vocal in the WordPress community about the fundamental issues I see with the new visual editor being bundled with version 5.0. One response I keep hearing is “how would you do it differently?” So, I thought I’d outline a hypothetical roadmap for the Gutenberg that might have been. read more »

Use Carbon Fields on Cloudways

I recently attempted to use Carbon Fields to generate custom metaboxes for a site hosted on Cloudways with PHP 7. I discovered, much to my dismay, that cloudways doesn’t support some of the multi-byte string functions in PHP (namely mb_strtolower) which is required for Carbon Fields.

For the benefit of those googling for answers, the site shows a blank white screen, and the error log contains PHP Fatal error: Uncaught Error: Call to undefined function Carbon_Fields\\Field\\mb_strtolower()

I’ve had no luck so far working with the CloudWays support team, but I will update this post if I hear back from their tier 3 technicians. I also reached out to HTMLburger, the makers of Carbon  Fields, to see if they can implement a workaround internally.

In the mean time, I was able to get the plugin running by importing the mb_string shim class from Patchwork Framework, by Nicolas Grekas. I’ve included a modified single file version of the shim with support checking added for each function, that you can import into your project to get Carbon Fields working, until Cloudways resolves the problem properly.

This is not a perfect replacement, as it is UTF-8 centric, so may behave unexpectedly with other character encodings, but it will at least get you up and running. Please, Cloudways, fix this.

read more »

You called it Gutenberg for a Reason.. That Doesn’t Make it Revolutionary. (An open response to Matt Mullenweg)

Matt Mullenweg, CEO of Automattic and founder/director of the WordPress Foundation, recently wrote a blog post entitled “We Called it Gutenberg for a Reason”, which attempted to address the widespread concerns voiced about the direction of the new WordPress editor. In general, the post made a lot of big promises about how Gutenberg would solve everyone’s problems. Unfortunately, many of those claims don’t live up to reasonable scrutiny. So, I find myself writing a response to the post, voicing some of the issues I find with what I see as an overly optimistic view. read more »

Introducing WP Utility Script Runner

At my day job, I often need to run a snippet of custom code once (and only once), and view or download the output. These snippets include things like:

  • Importing data from a spreadsheet
  • Generating a report about site usage
  • Invalidating passwords and notifying users
  • Deleting duplicates from a record set
  • Regenerating Thumbnails
  • many, many more…

WordPress doesn’t offer a good solution to this need, that addresses both the need for simplicity and security as well as providing a full-featured framework… So I built one.

WP Utility Script Runner

Raw First Impressions of WordPress page builders (NSFW Language)

I gave a presentation this year at WordCamp Boston, titled “Picking a Page Builder”. You can see the slides here:

I’ve never really incorporated page builders into my workflow, so in preparation for the talk I decided to do a blind review of 7 of the most common page builders. I recreated the homepage for the site in each builder, without reading any documentation, or taking any tours of the builders.

I chronicled the results in the slideshow above, but I also wanted to share the raw notes i took while building in each one. These notes are not a full review, and you’ll see that some of the ones I rated highly got harsher comments when using… mostly that was because the super obvious issues that i noted in my scorecards sometimes were so bad that I wasn’t as nitpicky with the fine details.

It should also be noted that because I used no documentation and took no tours, these notes may be incorrect about some features of the various builders, and should not be taken as guaranteed facts. My notes speak more to the discoverability of features than their existence. This is simply my live chronicle of how well was I able to figure each builder out, and how far could I get in a couple of hours.

Caution: these notes are unedited, and may contain harsh language read more »