Firebase strips all request cookies
A painfully wasteful discovery today was that, when you are using Firebase Functions to serve your code, it strips all cookies from the request object. The only hack around this is to use a specially...
View ArticleGitme.me brings joy to your code reviews
I recently shipped a fun Chrome extension called Gitmeme. It brings joy to your code reviews on Github by making is easy and fun to add Gifs and memes to your comments. Get it from https://gitme.me...
View ArticleSpecifying a default form submit button that works with Safari
When you have a HTML form with multiple submit buttons, if the user hits their Enter button, it’ll submit the form and pretend that the first submit button in the form was clicked. Given that the...
View ArticleThe story of how Google could have killed Facebook with the flick of a switch
As we near the end of this decade, and more importantly the end of the hell that was 2020, I realised two things. First, I survived catching Covid-19, and secondly that I had a good story about the...
View ArticleUploading a signed video to Cloudinary: a code example
Cloudinary is a fantastic cloud service for storing, serving and transforming images and videos. However the documentation for uploading an image or video from the browser, in a secure fashion, are...
View ArticleForwarding an email with attachments using SendGrid and Formidable
SendGrid.com is a great service for sending emails programmatically, but it also has an InboundParse feature that will call your webhook for any emails sent to your domain. It can be useful to forward...
View ArticleBuilding Countdoku, a multiplayer Sudoku Web app
tldr: I’ve built a multiplayer Sudoku game which you can play at Countdoku.app. Read on if you are interested in the technical details, (they’re cool, honest!) Many years ago I became interested in...
View ArticleKidz Fun Art – Tablet app for kids
I’ve built a fun new app for young kids, called Kidz Fun Art. Get it at https://kidzfun.art. I’m a software engineer, but far more importantly I’m the happy dad of two amazing girls, currently 4 and 6...
View ArticleReact.js: The Documentary
In mid-2022 I had a great time taking part in a documentary about the JavaScript framework ReactJS by the good people at Honeypot, along with many wonderful engineers who also played a part in its...
View ArticleReact.js: The Documentary & Q&A
In 2022 I had the great pleasure to chat with Ida Bechtle (https://twitter.com/BechtleIda) as part of a retelling of the early story of the creation of the React.js JavaScript library (I wrote about...
View ArticleUsing Bun.js as a bundler
Bun.js is a new (as of 2023) JavaScript runtime that is still very much in development, with it’s primary focus being on extreme speed. I’ve been following it for a while but until today haven’t had a...
View ArticleInstant colour fill with HTML Canvas
TLDR: Demo is at https://shaneosullivan.github.io/example-canvas-fill/ , code is at https://github.com/shaneosullivan/example-canvas-fill . The Problem When building a website or app using HTML...
View ArticleLightweight NextJS example of uploading files to Google Cloud Storage
Many years ago, back in 2018, I wrote a tiny NPM package called gcloud-storage-json-upload, which lets you authenticate with Google Cloud Storage and upload a file without needing to install any huge...
View ArticleHow to clean up after your NextJS dev server
Sometimes you need to modify files when building a web application that must be reverted before committing. In my case I’m building a Chrome extension that reads from a NextJS based web service, and...
View ArticleHow to list all files in a browser’s Origin Private File System
In case you’re working with the Origin Private File System on a browser whose dev tools don’t yet support browsing the files (all browsers as of Nov 2023, though Chrome does have an unofficial...
View ArticleQuick chicken soup recipe for sick people
Thanks to ChatGPT for this recipe with no stupid SEO in it. Total time to make: 80 minutes if you’re a normal slow chopper of vegetables (like me), 50 minutes if you’re super fast with a knife. For a...
View ArticleUsing Dall-E/AI to create kids colouring pages in KidzFun.art
Over the past couple of years I’ve been building KidzFun.art, an art & education app for my young kids and hopefully yours. The first feature I ever added was simple colouring pages, hand drawn by...
View ArticleFast Linear Gradient Fills with OffscreenCanvas
TLDR: Demo is here, Code is here, App is here In Kidz Fun Art, the web app for tablets I’ve built for my kids and hopefully yours, I recently added a nice little feature where you can fill in any area...
View ArticleTranslate your UI Strings with AI
TLDR: Easily keep your NodeJS projects translated in many languages with my JSON AI Translation NPM package. A few months ago I translated KidzFun.art to multiple other languages, using ChatGPT’s AI...
View ArticleCustom Gradients in Kidz Fun Art
For a long time in Kidz Fun Art, the tablet app I built, you could draw with a rainbow brush, which is the favourite feature of many people. I noticed my eldest daughter trying to use it in such a way...
View Article