Brian Cantoni
- 
		Vibe Coding a Website on my Phone Waiting at the Barbershop
		
Is it possible to "vibe code" a website from my phone while waiting for my turn at the barbershop? The answer as you might guess is yes! I recently created an event countdown website completely from my phone (no Wi-Fi) and got it launched in the 45 minutes while I waited for my turn in the chair! ...
 - 
		Simple Lossless Image Compression
		
During the migration from WordPress to Eleventy, I decided against the Eleventy standard image transform plugin and decided to just implement the pieces I needed. One remaining piece was automating the compression of images for better web performance. I usually prepare images before adding to the blog by adjusting to the right size and image type. That means in this script I'm sticking with lossless compression to save a few more bytes. ...
 - 
		Solving my Image Dimension Problem with an Eleventy Transform
		
When migrating from WordPress to Eleventy, I wanted to automatically add width and height attributes to my images for better performance and layout stability. The official Eleventy image plugin felt overcomplicated for my needs, so I built a simple transform that inspects image files and adds dimensions to HTML img tags during the build process. ...
 - 
		How to Add Playwright Automated Tests to an Eleventy Static Blog
		
Now that this blog has moved to the Eleventy system, I wanted to add some simple smoke tests to make sure the build process is working correctly and catch me if I break anything. I decided to go with Playwright because we use it at work and it's been on my to-learn list. Everything worked well, and I achieved good test coverage with 10 different tests, each containing multiple assertions. The trickiest part was making it all run correctly in the GitHub Actions pipelines. ...
 - 
		Copilot is my Copilot
		
Migrating this blog to Eleventy has been a good project for learning GitHub Copilot with some real-world scenarios and problem solving. We're currently using Cursor and other in-house AI tools at work, so playing with Copilot here has been a nice comparison. Here's a sample of several ways I used Copilot and how well it worked. ...
 - 
		Migrating WordPress To Eleventy
		
After 11 years on WordPress, I moved this blog to Eleventy (11ty) and I'm very happy with the results. These are my notes on the background and process for anyone going through a similar move. ...
 - 
		Proper Sitemap Update Dates for Eleventy
		
Sitemaps are the recommended way to ensure search engines understand all the pages on your site. This site is pretty simple and I'm not sure whether a sitemap is strictly needed, but I had one with WordPress and I'd like to keep it going. One important piece for this 23 year old blog is signalling when old posts are updated, so I had to make sure my new Eleventy-powered site handled that piece correctly. ...
 - 
		Migrated to Static Site (Eleventy)
		
After a nice 11 year run on WordPress I have spent the last few weeks migrating this site to the Eleventy (11ty) static site generator and switched over on the 24th. WordPress was fun to learn and had some nice features, but in the end was overkill for what I needed and I tired of keeping up with version upgrades and recovering from spammers hacking my site. ...
 - 
		Tableau Workbook Thumbnail Viewer by Claude
		
Claude wrote for me a simple tool for viewing and optionally removing thumbnails from a Tableau workbook file. I’m calling it my Aha! moment for AI-assisted development :) ...
 - 
		From Laptop to Cloud: Scaling YouTube Video Transcription with LLMs
		
My experiments around Summarizing YouTube Videos with LLMs have been working well on my Mac laptop, but I’d really like to run it as a service on a regular schedule. Running the OpenAI Whisper transcription process locally requires more than 1GB that my favorite Digital Ocean droplets provide. Instead I’ve added an option to run it directly against the OpenAI Transcriptions AI (the official OpenAI Python library makes it very easy). ...
 
More posts can be found in the full archive - or by exploring the tags.