Blog Why Pennyfill gets its fuel prices by email FuelFinder, my weekend vanilla JS project, has grown up a lot since I last wrote about it. It’s now called…
Blog Opening sign-ups on Pawdiary The app had worked for days. Getting it ready for strangers meant prerendering, contrast fixes, captchas, rate limits and proper email.
Blog The rebook list: the Pawdiary feature I care about most Regulars rarely leave a groomer. They just forget to rebook. So Pawdiary tracks who's due, what they're worth and which free slot to offer them.
Blog Pawdiary: from one groomer’s diary to a booking app anyone can use I built a booking system for one grooming salon, then turned it into Pawdiary, an app any groomer can sign up to. Most of the work was keeping each business's data to itself.
Blog Adding side projects to the portfolio alongside client work FuelFinder just joined the client sites in my portfolio. Here is why a weekend project earned a spot next to paid work.
Blog Fixing my pixelated portfolio screenshots with headless Chrome One flag I'd been missing, a crop to dodge cookie banners, and the portfolio grid finally looks like it was built on purpose.
Blog Giving this site the redesign it’s needed for a while Undefined colour tokens, pink everywhere, and an about page that just said 'This is a page about jim'. Time for a proper pass.
Blog Omega Life: six services, one site, no confusing mega-menu Putting six distinct care services under one clear brand — where information architecture mattered more than any line of code.
Blog Rebuilding Booker’s front end Booker's Laravel backend has held up fine. The front end it shipped with hasn't — here's the rebuild plan.
Blog FuelFinder, six weeks on: fixing the caching problem I shipped with I called out the missing cache in the FuelFinder launch post. Here is what it actually took to fix it, and what broke on the way.