A blog about Laravel & Rails by Dwight Watson;
developer of Roomies.com, myRent.co.nz, High School Notes & StudentVIP.com.au.

Pre-defined ActiveStorage variants in Rails 7
Rails 7 introduced a new feature to pre-define your ActiveStorage variants to allow re-use throughout your app. Unfortunately one of the top…
Supporting Safari (ES5) with Rails JS bundling/eslint
I recently replaced Webpacker v6 in a Rails app with the new standard of using eslint. Turned out to be a lucky change as well considering…
Deploying to Laravel Vapor with GitHub Actions
I've been using GitHub Actions more and more as a CI pipeline for my Laravel apps. Following a successful build on the master branch I want…
Deploying to multiple Laravel Vapor apps
I recently launched HighSchoolNotes.com.au into another region HighSchoolNotes.co.nz. Under the hood this is the very same Laravel app…
Serving site.webmanifest on Laravel Vapor
For whatever reason Laravel Vapor explictly does not publish your file, and it won't be fixed changed until the next major version. To get…
Using Laravel Cashier to handle Stripe webhooks
Stripe webhooks can be a little bit annoying to verify. In Laravel I've generally done it using the method of a FormRequest. The…
Geolocate requests with Cloudflare workers
A number of apps I've worked on have used HTTP request geolocation to show content that's relevant to the user. Not in a creepy way (where…
Rails has a simple syntax for rendering a collection of partials and caching them all in one go. Under the hood it'll try and fetch all the…
Uploading files with Laravel Livewire and Laravel Vapor
I've just recently started working with Laravel Livewire, now that it ships as an option with the new Laravel Jetstream. Livewire is a…
I've known about Amazon S3 Transfer Acceleration for a while but haven't had a good use-case. In brief, this feature allows you to speed up…