Mar 7, 2021A Comprehensive Guide to Building and Packaging an Electron AppI recently went through the gauntlet this is trying to build and package an Electron app. I say gauntlet as the entire process of figuring out all the different ways there are to package an app for distribution was quite exhausting and a bit frustrating. The main problem I had…Java Script12 min read
Feb 28, 2021Calculating the Position of a Game Object Relative to the Camera in Phaser 3While working on Keridwen, an accessible JavaScript puzzle game, I needed to get the absolute position of a game object in Phaser 3. That is, I had a large scrolling scene and I needed to know where the game object was drawn relative to the top-left corner of the canvas. …Java Script2 min read
Sep 24, 2020Reducing Axe-core File Size: Trie Stored as Nested ArraysRecently axe-core decided to adopt a size budget as part of an ongoing effort to improve our performance. We noted that axe-cores file size had more than doubled since the last major release and that we needed to start monitoring our size better. With the budget in place, I started…Java Script3 min read
Published in js13kGames·Aug 28, 2020What’s new in Kontra.js v7Kontra.js v7 was released a few weeks ago. With it brings a host of new functionality and components as well as a new way to reduce the overall file size. For a complete list of changes, see the v7 release notes. TypeScript Support One of the new features this release is TypeScript…Js 13 K3 min read
Aug 23, 2020Custom 404 Page Without a ServerI recently wanted to know if it was possible to create a custom 404 page for a website if you didn’t have access to the backend server. …Java Script2 min read
Mar 3, 2020Ravaged Space PostmortemLast month I participated in the Australian Bushfire Charity Jam. The premise of the game jam was to create a game in two weeks that would be sold as part of a bundle, with all proceeds going to bushfire related charities. Now that the bundle sale has finished, I wanted…Java Script9 min read
Jan 19, 2020Improving Axe-core Color Contrast PerformanceOver the past year, I’ve been making significant performance improvements to axe-core. A few of our rules were very slow on large pages (10k+ DOM nodes), and could even freeze the page if it was too large. …Java Script9 min read
Oct 22, 2019Detecting Ligature Icons With JavaScriptWhile working on axe-core, an accessibility testing library, we ran into an interesting problem. We needed to be able to detect when a string of text had been replaced by a ligature icon. A ligature icon is a special type of ligature where instead of a combination of letters it…Java Script9 min read
Published in js13kGames·Oct 9, 2019Kontra.js PostmortemEvery year at the end of the Js13kGames competition, participants are encouraged to write a postmortem about their experience making a small game in one month. This year I too was encouraged to write a postmortem. But not about making a game, but about Kontra.js …Java Script5 min read
Feb 10, 2019Unit Testing a Vue.js Functional Component that Returns Multiple Root NodesI’ve been learning Vue.js recently by building a small app. Part of my app displays information using a table, so I extracted out the row into its own functional component using a render function that returns multiple root nodes. …Java Script3 min read