Welcome to my little corner of the internet.

Hi, my name is Jonathan.

I am a developer and writer from Cape Town, South Africa with a passion for open-source software.

I work at Automattic as a full-time sponsored contributor to the WordPress project, working with the Training team on Learn WordPress. We create educational content for the WordPress community, and my focus is on developer-related content.

This site is my personal blog, where I write about all sorts of things, but mostly with a focus on web development.

Latest Posts


  • Developing WordPress Blocks without React

    Code. Free public domain CC0

    One of the most common complaints I hear from long term WordPress developers boils down to the fact that to develop blocks for the WordPress Block Editor, you need to set up the JavaScript development environment (Node.js + npm + @wordpress/scripts) in order to start building blocks. This is not entirely true, as it is […]

  • Upgrades and benchmarks

    dark industry internet abstract

    It’s been just over 2 years since I last worked on building/upgrading a computer, in what was then my new office workstation. One of the main reasons for this is that I now have a company-sponsored MacBook Pro, and so my office and home computers are mostly used for gaming, or if I’m tinkering with […]

  • 2022 Year in Review

    white and brown sea dock

    Since 2016, I have tried to write either a year-in-review and/or goal-setting post, or a combination of the two. The idea behind these process is to try and set achievable goals for me for the year ahead, and then look at how close I’ve come to achieving them. Last year I set some very specific […]

  • I don’t understand computers

    Free computer chip image

    I’ve been building PCs for as long as I’ve been into computers (early nineties) and they still baffle me. Yesterday I installed a new graphics card on my office workstation, and the PC didn’t POST the first time. So I power cycle it, and it POSTs, but throws some “safe mode” BIOS error. So I […]

  • Tuesday Twitch Streams

    I’ve been toying with the idea of doing weekly development live streams for some time now. Fortunately, my work on the WordPress training team regularly requires me to do some R&D work on new topics, which are the perfect subjects for live streams. So if you want to watch me fumble my way through WordPress […]

  • Running Different PHP Versions with Apache on Ubuntu

    abstract business code coder

    I’ve been using Apache as my default local development web server since I started writing PHP code back in 2006. Back then, Nginx was barely 2 years old, and every web server was running Apache, so it just made sense. Over the years I’ve come to prefer Nginx on my web servers, but I still […]

  • Let’s code! Creating your first WordPress Plugin

    As part of my sponsored work for the WordPress Training Team, I’m hosting weekly “Let’s Code” Online Workshops for Learn WordPress. Each week I cover a WordPress development concept. I’m sharing them here as well so that if anyone has questions they can ask me here (in the comments) directly. Watch this video on WordPress.tv […]

  • Turning a shortcode into a block

    a laptop screen with text

    I’ve had a couple of folks either reach out to me or ask on Twitter if it’s easy to convert a shortcode into a block. The irony is that during my trial at Automattic, that’s exactly what I created, a tutorial on taking an existing shortcode plugin and adding it as a block. I am […]

  • 45

    I turn 45 today, in a world where right-wing politics is tearing down individual rights, unjust wars are being allowed to kill innocents, and tech, in general, is just one big scam after another. I’m finding it hard to be positive about all this, but the one thing that keeps me going is the fact […]