Author: John Hawkins

  • Help Me Remember: Why I built yet another reminder app

    Help Me Remember: Why I built yet another reminder app

    I got so annoyed at losing track of my own reminders that I built an app to fix it. It’s called Help Me Remember, it’s free, and it runs on the web, iOS, and Android. Why Reminders End Up Scattered Across Five Apps Reminders get scattered because wherever you happen to be, the easiest place…

  • How to Say No to a Client

    How to Say No to a Client

    Saying no is not a failure to sell. On a long enough timeline it is most of the job. Nobody hires a WordPress shop because the shop agrees with them. They hire it because they want the thing to work, and sometimes the fastest route to that is a conversation where somebody says the plan…

  • How to Build a Local WordPress Dev Stack on Mac with Homebrew

    How to Build a Local WordPress Dev Stack on Mac with Homebrew

    As a long-time WordPress developer, over the years I’ve used every sort of tool available for running WordPress locally for development purposes. I remember starting with XAMPP, moving to MAMP, Desktop Server (RIP), and I event tried Local by WP Engine for a while. They’re great tools for getting started… download, click a button, you’ve…

  • Automate Cloudflare and SpinupWP Cache Purges with Git Hooks

    Automate Cloudflare and SpinupWP Cache Purges with Git Hooks

    The Core Insight: A local Git pre-push hook that calls the Cloudflare and SpinupWP APIs automatically clears your cache on every push, with nothing to configure on the production server. There’s a version of this conversation I’ve had more times than I care to count. I push a change, send the client an email saying…

  • Hacked WordPress Site? How to Decide Between a Cleanup and a Full Rebuild

    Hacked WordPress Site? How to Decide Between a Cleanup and a Full Rebuild

    The Core Insight: When a WordPress site gets hit with malware, the first move is always to find a clean backup and restore from it. A full rebuild is the last resort, not the first one — but sometimes it’s the only option left. Need help right now? Get help with a hacked WordPress site.…

  • The Hard Part of Business Automation Isn’t the Code

    The Hard Part of Business Automation Isn’t the Code

    The Core Insight: Business automation fails because of a vision gap, not a coding problem. Most owners have normalized the repetitive work in their week, so they never flag it as something a machine could take over. Sometimes the fix is a script. Sometimes it is a five minute video. The skill is noticing. The…

  • Fixing an issue with og:image and Featured Images

    Fixing an issue with og:image and Featured Images

    Over the past month, I’ve been putting some extra effort into updating the VegasGeek site. As they say, the cobbler’s kids have no shoes. Well, the web developer’s website is the last to receive updates. One of the first things I noticed was the preview image being used on social media when I shared the…

  • New Plugin: Set Sort Order

    New Plugin: Set Sort Order

    While working on a client project, I added a few custom post types and a custom taxonomy to each. Once the client started adding content to the site, he asked, “How do I sort the order of the items on the page?” This should have been a simple request. Unfortunately, that wasn’t the case. After…

  • How I stopped Gravity Forms from performing 1,500 queries per page

    How I stopped Gravity Forms from performing 1,500 queries per page

    For the past two years, I’ve been working with tpn.health to build an online platform where clinicians earn continuing education credits through live and on-demand classes. When we started out, we used many off-the-shelf plugins, and over time we’ve written and rewritten tons of custom functionality. One plugin that has been a staple the entire…

  • Sending emails with SendGrid from your WordPress website

    Sending emails with SendGrid from your WordPress website

    Depending on where you host your website, you may not have ever needed to consider how your site sends email. Most shared-hosting services handle outgoing emails automatically. But, if you are setting up your site on a Digitial Ocean or AWS server, that may not be the case. If that’s the case, you will need…