In Kidz Fun Art, I recently increased the resolution of images by two, letting young artists draw at much higher quality (important for my 10 year old who was hitting the limits of the program, she’s amazing). However this introduced an annoying crash on Safari where, after loading four or five images to edit, it … Continue reading Undah (Memory) Pressha… do do do do do do do →
One of the absolutely coolest features of Kidz Fun Art is the ability to create Animations. This was initially inspired by watching my nieces creating an animation on another Android app, so I focused purely on the creation case. This worked well, where most animations were under 50 frames in length, as it takes time … Continue reading Huge under-the-hood upgrade to Animations in Kidz Fun Art →
For a long time I’ve wanted to add Spirographs to my (awesome 🙂 ) drawing app for kids, Kidz Fun Art, and today it’s ready! There was quite a bit of fun mathematics in getting it to feel natural and work with all sizes of circles, but it seems to have worked out very well! … Continue reading Spirograph fun in Kidz Fun Art →
Way, waaayyy back in 2010, I built a fun little game for the Palm WebOS series of phones called Mazer. I was happy with it, loads of people downloaded and played it, and then WebOS died. I recently found the source code again, and with the help of Claude AI I rewrote it to run … Continue reading Mazers – a WebOS app rises again on iOS & iPad →
I’ve been using the Irish energy provider Energia for 5 years or so (as of writing, 2026) and they used to have a useful insights dashboard that let me analyse my power usage. Well, they seem to have removed it so I built a handy dashboard that anyone can use. It’s at https://energy.chofter.com/ , try … Continue reading Analyse and run simulations on your energy usage →
As 2026 begins, thinking back on my 2025 is a bit nuts. I can’t believe how much new product I shipped. I think AI had a lot to do with it, freeing me up to take on projects that I still wrote probably 60% of the code I shipped this year, but when I used … Continue reading My 2025: The most productive year yet? →
Kidz Fun Art grew a lot in 2025! Many more people use it regularly, many more choose the paid version & I added far more cool features. Loads of Work… First off, here’s a graph of the number of changes (“commits” in technical terms) that I made. 612 changes in total with a few quiet … Continue reading 2025: A big year for Kidz Fun Art →
TLDR: I’ve shipped a new NPM module called gif2vid that enables video encoding of GIF files in the browser, in your terminal and in a web app backend. I’ve also created an uber simple website at https://gif2vid.com where you can use it. My kids enjoy building cute (and sometimes downright weird) animations using Kidz Fun … Continue reading Gif to MP4 encoding in the browser, the terminal &…
TLDR: I built a simple & fun game using React Native, try it out on iPhone and iPad! In the Beginning…. My kids are 7 & 9 as I write this in 2025, but 6 years ago in 2019 they loved a simple little bubble popping app on my phone, and I thought it’d be … Continue reading Super Bubbly: React Native kids game →
TLDR: Click here for code to implement a lightweight, resilient clickable YouTube preview. YouTube videos are expensive to load on a web page. This compounds if you want your page to display many videos at the same time for the user to choose from. Before the user even plays the video, it loads 4MB onto … Continue reading Fighting with YouTube to show a preview image →
I’ve been building Kidz Fun Art (web, iPad & Windows) since 2021, so 4 years at time of writing. It’s a tablet optimized application intended to be used by children of all ages – my daughters were 3 and 5 when I started, and are 7 and 9 now, so I’ve seen how they use … Continue reading On Designing For Children →
Working with very large JSON files (20MB+) using online tools tends to be a crashy affair. Whether you’re looking to format or search them, all the tools I found just crash. I found myself having to work with huge JSON files recently, so I built a tool specifically optimized for huge JSON files, called Huge … Continue reading Search Huge JSON files on the Web →
Many years ago (2010 or so) I released an app called Flickr Addict for Palm WebOS phones, which automatically downloaded beautiful images from the Flickr photography website and changed the phone background image on a regular basis. I wanted to see if I could rebuild that app in the Apple language Swift, which I didn’t … Continue reading Explore Wallpapers for Mac →
Last month I decided to do a quick fun project as an excuse to try out AI coding tools, called iWittr.com. It’s a fan site for the Kermode & Mayo podcast, which I’ve been listening to for over 10 years. I might do another post about that experience, but this one is about reducing it’s … Continue reading Optimizing iWittr.com to reduce Google Cloud & Vercel costs →
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 so to only use a subset of the colors and it was really awkward, … Continue reading Custom Gradients in Kidz Fun Art →
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 for the translations. This worked fine when dealing with a blank slate, but I found that every time I wanted to add a new … Continue reading Translate your UI Strings with AI →
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 with a linear gradient. It’s highly responsive to the user moving their pen/finger, and … Continue reading Fast Linear Gradient Fills with OffscreenCanvas →
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 my lovely and talented wife. However that was a slow and laborious process, and with the advances in AI since … Continue reading Using Dall-E/AI to create kids colouring pages in KidzFun.art →
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 simple chicken soup with potatoes, you’ll need the following ingredients: 500g (1 lb) chicken breast or … Continue reading Quick chicken soup recipe for sick people →
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 extension which is nice), then here’s a code snippet you can use to list all the contents of the file system. … Continue reading How to list all files in a browser’s Origin Private File System (OPFS) →