Ensuring state and session storage correctly kept in sync
What I have been enjoying about working with React hooks
Don't make the same mistakes I did when trying to style shadow DOM elements!
Understanding stacking contexts and how to layer elements
Quickly finding relevant network requests in Chrome DevTools
My favourite resources on YouTube as a web developer
Why your slice may not be updating as expected
A selection of the resources I have found most useful for learning Go
Getting out of Git mishaps using git cherry-pick
Fixing mysteriously disappearing background images
How to send cookies using the Fetch API
How the position of an element is determined by its containing block
Spicing up your log messages for good, for business and for fun.
Making it easy to find styled components with enzyme's .find()
Using Git bisect run to make finding the commit a bug was introduced easier.
Web scraping NS&I using Google's Puppeteer Node library.
Preventing errors where dependency extensions are not known or activated.
Organising styles to isolate those for old browsers. Making CSS maintainable and of clear intention.
Preventing unknown prop warnings from React.
A <button> gotcha!
How git reflog saved me from losing my work!
Making a simple web component to select times.
Getting started with web components.
How to prevent user-triggered caching of offline responses from service workers.
How to use aliases in Bash scripts.
How to stash unstaged changes in Git pre-commit scripts to prevent testing against unstaged code.
Using the Web Share API to invoke native sharing.
Differentiating alt text from main article text using CSS.
How to bypass lazy loading for images stored in the application cache.
How to cache service workers so they update correctly.
Migrating to HTTPS using Let's Encrypt and Certbot.
Converting my Furigana Toggle Chrome extension to a Firefox add-on.
Showing focus outlining only when focusing via keyboard not mouse.
How to fix background SVG images in Edge.
Creating a flash briefing skill for Amazon Alexa.
How to lazy load images with the Intersection Observer API
My experience at my first conference - JSConf EU 2017
Getting started with dynamic and flexible styling using CSS Custom Properties.
Learning to make electronic music tools in the browser. Algorithmic Music.
Learning to make electronic music tools in the browser. Creating user interfaces for Web Audio API music tools with Nexus UI.
Learning to make electronic music tools in the browser. Creating a theremin with the Web Audio API.
window.matchMedia and altering event listeners based on media queries.
A collection of tips for creating a great multilingual website.
How to include Git hooks in a repository to share with other team members.
Make your search results delicious by adding some structured data breadcrumbs!
Leveraging structured data for web app SEO. Help search engines understand your app!
Creating geostationary satellite animations with the Dundee Satellite Receiving Station animation web application.
Scraping movie listings with Ruby and Nokogiri. A beginners guide to web scraping.
An introduction to me and how I became interested in software.