Articles

You can see tags for what topics I like to cover.

Some things I want to learn and write about (even if it’s just for myself) in the future:


Create and configure a GitHub workflow to run PHP QA tools (e.g. phplint, phpcs), and then run unit and feature tests (e.g. php artisan test, phpunit), and finally generate a code coverage report or some other artifact.
Published
Send a message template containing emoji from Twilio in Laravel.
Published
Easily consume arbitrary raw AWS SQS messages produced by another application in your Laravel application’s queue with a Job and queue configuration.
Published
Learn how to set up a GitHub workflow to build documentation for a generated PHP SDK from multiple generators, and consolidate them all into a single gh-pages branch.
Published
Generate and save a blade component containing a Chart.js chart in Laravel (without controller bloat) using Browsershot, and then upload it to S3.
Published
Use the Laravel Pipeline component with many Pipes to replace arbitrary placeholders in DOM with computed values using a Model’s accessor
Published
Create a Laravel middleware to parse the response DOM and update a set of img’s src to be routed through imgproxy.
Published
List the active git branch for a set of git repositories in whiptail, then jump to the selected repository’s tmux window
Published
Setting up the Tailwind breakpoints by adding custom devices in Google Chrome’s device toolbar for easier testing.
Published
I’ve hosted many apps. I’ve set up CI to build containers. But I’ve never figured out the continuous deployment part, until now. I will use watchtower in a GitHub workflow to trigger the image update and restart the container.
Published
Bundling the generated output from a static site generator (e.g. hugo) into a simple static file server (e.g. caddy) for testing the build.
Published
Copy a file from another git branch without checking to that target branch.
Published
Want your Laravel app to do something after running migrations? Here’s how I did it.
Published
Understanding basic SVG path and viewbox for a simple filled triangle.
Published
Connect to a remote server with mc from command line (non-interactive).
mc
Published
Enabling MySQL query logging on Mac (without Docker).
Published
A command I’ve used a few times to install a fresh Laravel project into the cwd’s src/ folder, leaving the cwd for your own README, Docker, Terraform, etc. files.
Published
Installing and configuring Xdebug with Laravel Valet.
Published
A few tools (email, object storage, logging) to substitute compatible APIs from production environment for local development.
Published
How to handle backend requests given from livewire/sortable. Data fetched in mount - think Posts by Users (as prop into Livewire component) under a Category (as prop into Livewire component), then sort order persisted during action and re-rendered seamlessly.
Published
How to set up PHPStorm, and use webdevops/php-dev:7.x image using xdebubg v3.
Published
Create an AWS S3 and corresponding CNAME in Cloudflare for static site hosting using ‘infrastructure as code’ using Terraform.
Published
A UK place name gazetteer loaded into a docker image with some spatial querying.
Published
Building a private Docker image with custom structure and data, for a legacy app for a slightly easier CI pipeline.
Published
Using failedValidation for standard JSON responses on validation error(s).
Published
Slim single action controllers and IDE friendly FQCN route definitions in Laravel.
Published
Code Quality and Security - SonarQube empowers all developers to write cleaner and safer code.
Published
Moving our semi-unstructured data from a mysql database, stored in a json column to a mongodb instance for better performance.
Published
Use a SOCKS proxy to query an IP restricted API with Postman.
Published
Automatically have Github Actions build some code-generated (binary) assets and attach to a release when a new tag is pushed.
Published
Automatically have Bitbucket CI build a static site and move the built into a production or staging bucket depending on the branch.
Published
Relatively barebones PHP environment for Codewars Kata challenges, with xdebug.
Published
Publish messages to a RabbitMQ instance using PHP. Build a PHP consumer to process messages in the background with supervisord.
Published
How you might integrate content written in a Ghost Blog into a Laravel site using its Content API.
Published
A simple whiptail script to select which databases you want to refresh for local development work. Downloads using awscli and some pv for progress on decompressing and importing.
Published
This was hell. Just an excuse to save some handy wget, ssh, find, csvtool, xargs, commands and other occasionally useful things, honestly.
Published
Basic scripts for dealing with PDF in my job - converting, cutting and catting - throwing some zenity around gs and pdftk.
Published
Some tips I picked up to make sites hosted on Apache httpd servers more secure.
Published
Friendship ended with terminator, now tmux is my best friend.
Published
How you can integrate some PHP QA tools in your project, and guard your project with git hooks.
Published
One ingress nginx reverse proxy to multiple php:apache containers with different (XDebug) configurations.
Published
An interactive CLI for logging server audits in bash with whiptail and logger.
Published