Local PHP development with Docker Compose

Introduction This post will cover how I host local copies of PHP websites running WordPress and Laravel with Docker Compose. This removes the need to install PHP, Composer, Nginx/Apache, MySQL, NPM/Node, etc locally on your host machine. I run my local development environments within Docker to avoid bloating my system. This means all of the […]

Automatically update Pypi on GitHub release

Introduction This article will guide you through setting up a GitHub workflow that automatically updates your PYPI package upon a new GitHub release, using my zomboid_rcon repository as a practical example. Understanding the Workflow The process involves a GitHub workflow specifically designed to upload a Python package to PYPI when a new release is published. […]

Squashing Commits with Git Interactive Rebase and Reset

When working on projects both personally and professionally, I use Git for version control. More often than not, If I’m working on a fix or a new feature, I will work from a new branch which has a single, specific focus and then merge it into the main branch when the work is complete. This […]

Foreign Keys in Laravel Migrations, Models & Eloquent ORM

The problem we’re solving I’m building a small SaaS project with Laravel. My project is a website up-time monitoring platform that pings users’ websites every 5 minutes to check if they’re live. Suppose a website is unreachable for any reason: In that case, a notification will then be sent to the account owner so they […]

Using WordPress via Composer: How and Why?

Introduction For my website, jackwhitworth.com, I’ve embraced Composer. The main reason for this choice is the ease of managing custom code. By using Composer, I can easily integrate version control and pull in other packages I’ve written from custom Composer repositories. This approach ensures that the site remains efficient, secure, and easily updatable. In a […]

A Guide to Optimising Image Sizes in Divi

Introduction Within web design, images are central to user experience. However, unoptimised images can significantly slow down your website. For Divi users, fine-tuning image sizes can vastly improve site speed and performance. This guide dives deep into how you can optimise image sizes in Divi, ensuring your website remains visually appealing without compromising on speed. […]

Compile Python to .exe Files With PyInstaller

Introduction If you’re delving into the world of Python programming, you might find yourself needing to convert your Python scripts into executables (.exe) files, especially for ease of distribution among Windows users. A popular tool for this task is PyInstaller, but there are a few key points and nuances to be aware of during this […]

Run NPM & Composer in Git Deployment Actions

What are Git additional deployment options in Plesk? Within Plesk, you can set up a website to pull its code directly from a Git repo. By using webhooks, you can have Plesk automatically pull new versions of the project whenever commits or merges are made to the main/target branch. This way, when you deploy your […]

Using Cloudflare R2 Buckets with WordPress

What is Cloudflare R2? Cloudflare R2 ‘…allows developers to store large amounts of unstructured data without the costly egress bandwidth fees associated with typical cloud storage services’. It is essentially the same service as Amazon’s S3 storage buckets, but with the key selling points of having a really generous free tier and being overall cheaper […]

Use Cloudflare SSL Certificates with Plesk

Introduction I use Plesk to manage all of my websites on a secure VPS. Along with this, I use Cloudflare’s CDN to help boost speed and security. A nice feature within Plesk is its integration with Let’s Encrypt’s free SSL certificates. This allows certificates to be generated automatically with a validity period of 3 months. […]