Open Source

I maintain a handful of open source tools, most started as a way to save myself time on a build, before proving useful to others too. Tools like Claude Code have since helped me find and fix bugs faster.

They are the parts of a WordPress project I wanted to automate: getting a live site onto a local machine, standing a new install up from nothing, and starting a theme with a common package set.

WP-CLI Sync on GitHub 34 stars on GitHub 9 forks on GitHub Version 1.6.0

A WP-CLI command that pulls a live site down to a development environment in a matter of minutes.

It talks to the host over SSH, brings the database and the uploads folder across, and leaves the plugin state how a local build wants it — all from one command.

~/Sites/jonbp
○ WP-CLI Sync  jonbp.co.uk → dev.jonbp.co.uk · v1.6.0 › Connection  ✔ Connected to web@pablo (0.6s) › Database  ✔ Imported 2.7 MB (3.2s) › Site URLs  ✔ jonbp.co.uk → http://dev.jonbp.co.uk, 400 replacements (1.9s) › Uploads  ✔ Already up to date (0.9s) › Plugins  ✔ Already up to date (0.7s) › Deactivate Plugins  ✔ Deactivated wp-cloudflare-page-cache, all-in-one-seo-pack (0.6s) ✔ Sync complete in 8.1s

Ignition on GitHub 2 stars on GitHub Version 2.1.0

A command line tool that stands a WordPress site up in minutes, on Bedrock or a standard install.

It asks a short set of questions, then creates the site, the admin user, the base pages and the plugins I reach for on every project.

~/Sites/jonbp
○ Ignition  Bedrock installation · v2.1.0 › Database  Database name: jonbp › WordPress Admin User  Username: jonbp  Email address: [email protected]  Forename: Jon  Surname: Beaumont-Pike › Site  Site URL: http://dev.jonbp.co.uk  Site name: Jon Beaumont-Pike  Tagline: Full Stack Web Developer  Base pages (separate page names with commas): About Me, Open Source, Portfolio › Common Plugins  Install Classic Editor? (y/N): n  Install WooCommerce? (y/N): n  Install Disable Comments? (y/N): y  Install Disable Search? (y/N): y › Final Check  Are you ready to proceed? (y/N): y
Details [ < 5 min entry ]

Quad on GitHub

A Tailwind v4 and Vite starter theme for WordPress, and the theme this site runs on. Inspired by the underscores theme.

Templates live in template-parts/ to keep the root clean, jQuery is deregistered, and the build is a watch step that stays out of the way.

quad/
  • inc
  • src
  • css
  • js
  • template-parts
  • content
  • listings
  • menus
  • structure
  • functions.php
  • vite.config.mjs
  • package.json

Novacore on GitHub

A local LEMP stack in Docker for running PHP sites: nginx, PHP-FPM from 7.4 to 8.5 and MariaDB, with a small CLI that does the setup for you, from adding a site to switching its PHP version.

Every site gets its own .localhost address with a trusted HTTPS certificate and its own PHP version, with Xdebug built in and no hosts file to edit.

https://localhost

Sites

5 sites · 4 PHP versions
SitePHPRoot
jonbp.localhost 8.4 auto
blog.localhost 8.4 auto
shop.localhost 8.2 web/
legacy.localhost 7.4 public_html/
api.localhost 8.5 public/
  • nginx running
  • php74 running
  • php82 running
  • php84 running
  • php85 running
  • mariadb running

Mothball on GitHub

A WordPress plugin that packs away the parts of WordPress a site never uses: comments, search, the blog and XML-RPC. It keeps them out of the admin, the editor and the front end, and can close off the REST API one route group at a time.

Nothing is deleted. Each feature is a single switch, set on its settings screen, in wp-config.php or with WP-CLI, and switching one back on returns the site exactly as it was.

https://localhost/wp-admin/options-general.php?page=mothball

Settings

4 mothballed

Features

Comments Closed everywhere, existing ones kept Mothballed
Search Front end searches return a 404 Mothballed
Blog Posts, categories and tags put away Mothballed
XML-RPC Refused before any method runs Mothballed

Clean-up

Page head Emoji, generator and RSD tags On
Heartbeat Kept to the editor and post lists On

Rush on GitHub

An elegant display for periodic speedtest results. A scheduled speedtest-cli run appends to a CSV.

Rush reads the latest results and turns them into a latest reading and a run of history, so it’s easy to track a slow connection. This was created when I didn’t have the best home internet connection!

Latest Result

  • 492.6mbps Download
  • 74.3mbps Upload
  • 8.91ms Ping
Time / DateDownUpPing
492.6 74.3 8.91
488.1 73.8 9.12
495.4 74.6 8.74
479.2 72.9 9.48
490.7 74.1 8.95