1. Distant Sound

    Small experiment with sound based on scroll distance.


  1. Fixing MS Edge Battery Drain on M1 Mac

    Edge was destroying the battery life on my Macbook Air M1

  2. Vue Timeline

    An infinite scroll timeline component written for Vue 3.

  3. New Job 🎉

    Back to React.


  1. Vue Data Table

    Exploring how to tackle a data table in Vue without relying on third-party solutions.

  2. Coping with Bad Dates

    Deriving multiple date ranges from a single one when presented with unavailable dates.

  3. IE11 Placeholder Transition Issue

    A combination of autoprefixer and transitions styles broke an input in IE11.

  4. DraftJS: Mentions Plugin with Scrolling and Keyboard Navigation

    Solving the problem of a scrolling results list with the DraftJS mentions plugin.

  5. Text Selection Particle Effects

    Creating particle effects based on text selection using the Web Animations API.


  1. Building an Appreciation System

    Using Google Sheets as a back-end, we can record likes on anything we want on a static site.

  2. Self-Host Google Fonts

    Self-hosting Google Fonts gives you more control over performance and loading of your fonts.

  3. Image Parallax and Blur with Tornis

    Using the Tornis library to create a parallax and blur effect on a cover image while scrolling.

  4. Task Management

    How I handle task management - a combination of software with pen and paper depending on the context.

  5. Multi-Select Checkboxes with React

    Listen for hotkeys to select multiple checkboxes in a few clicks.

  6. Web Cloaks

    A few observations on techniques that are used to disguise a problem with a website.

  7. Clever Logos

    A collection of clever logos. Great for getting the brain going when you're looking for inspiration.

  8. Derived Stores With Svelte

    Getting up to speed with derived stores in Svelte and how they compare to something like computed properties in Vue.

  9. Scrollable Container Controls with React

    Managing a scrollable container with React by adding button controls, and seeing when they should be enabled or disabled.


  1. My 2020

    A recap of the year.

  2. Vapid CMS

    Vapid is a content management system that has a very smart way of letting you focus on the code, while constructing a dashboard based on your templates.

  3. Website Inspiration

    A few things that got me excited to try my hand at redesigning my website. That's not to say I'm a designer, cause I'm not.

  4. HTML Imports & Component-Driven Development

    Playing around with HTML Imports before deprecation, pining for a native, relatively hassle-free way of building a component library.

  5. Improving Client-Side Performance

    A few ways in which we can improve client-side performance focusing on images, third-party scripts and more.

  6. Building a Table of Contents with the Intersection Observer API

    How to build a live-updating table of contents using Intersection Observer.

  7. Fathom Analytics

    Installing Fathom analytics, an open-source alternative to traditional web analytics, on Heroku.

  8. lets you quickly grab a URL to an avatar of yours from a few different services

  9. A Signal in the Static

    Moving from Craft CMS to Hugo and Netlify

  10. What Do I Know?

    The web moves fast, but it doesn't invalidate what you already know.

  11. Create an RSS Feed Reader

  12. Upgrading to webpack 4

    Moving from Laravel Mix to webpack 4, and the performance benefits.

  13. Do Not Track

    How to use window.doNotTrack to decide when to use tracking.

  14. My Local Environment Timeline

  15. The Weary WordPress Dev

  16. Theming with CSS Custom Properties

  17. Page Visibility API

  18. Use AppleScript to Automate with iTerm

  19. DIY RSS Feed Reader

    Building your own Feed Reader with Vue.js and Node

  20. Craft Plugins Browser

    A small project to browse Craft CMS plugins by popularity.

  21. Variable Fonts

  22. Client-Side Search with Algolia

    Adding client-side search with Algolia.

  23. Building My Site Part III: Fine Tuning

    Final tweaks and performance improvements for my website.

  24. Building My Site Part II: Setup

    Setting up my new website with Craft CMS.

  25. Building My Site Part I: Decisions

    Building my website with Craft CMS.


  1. Building a 'Now Playing' Feature

    Show the world what you're listening to because it's important.

  2. Tip for React PropTypes with Storybook


  1. First Seven Jobs

  2. Resourceful Learning

  3. Vue.js and Spotify Experiment


  1. Up and Atom

  2. The (Clip) Path of Least Resistance

  3. Timber and Twig Reignited My Love for WordPress

  4. Expanding menu with GSAP

  5. Lightweight Utility Object

  6. Responsibilities of a Web Person

  7. Getting Started with WordPress and Unit Testing

  8. Pace Yourself

  9. Building a full-screen overlay

    A JavaScript approach to a full-screen overlay

  10. Quickly build a simple grid with Sass

  11. Wait, what am I meant to be doing again?

  12. Web Project Boilerplate - Browserify with ES6


  1. Foundation 5.5

  2. Front-end Strategy with a sprinkling of ExpressionEngine