Vue Data Table
Exploring how to tackle a data table in Vue without relying on third-party solutions.
Coping with Bad Dates
Deriving multiple date ranges from a single one when presented with unavailable dates.
IE11 Placeholder Transition Issue
A combination of autoprefixer and transitions styles broke an input in IE11.
DraftJS: Mentions Plugin with Scrolling and Keyboard Navigation
Solving the problem of a scrolling results list with the DraftJS mentions plugin.
Text Selection Particle Effects
Creating particle effects based on text selection using the Web Animations API.
Building an Appreciation System
Using Google Sheets as a back-end, we can record likes on anything we want on a static site.
Self-Host Google Fonts
Self-hosting Google Fonts gives you more control over performance and loading of your fonts.
Image Parallax and Blur with Tornis
Using the Tornis library to create a parallax and blur effect on a cover image while scrolling.
How I handle task management - a combination of software with pen and paper depending on the context.
Multi-Select Checkboxes with React
Listen for hotkeys to select multiple checkboxes in a few clicks.
A few observations on techniques that are used to disguise a problem with a website.
A collection of clever logos. Great for getting the brain going when you're looking for inspiration.
Derived Stores With Svelte
Getting up to speed with derived stores in Svelte and how they compare to something like computed properties in Vue.
Scrollable Container Controls with React
Managing a scrollable container with React by adding button controls, and seeing when they should be enabled or disabled.
A recap of the year.
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.
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.
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.
Improving Client-Side Performance
A few ways in which we can improve client-side performance focusing on images, third-party scripts and more.
Building a Table of Contents with the Intersection Observer API
How to build a live-updating table of contents using Intersection Observer.
Installing Fathom analytics, an open-source alternative to traditional web analytics, on Heroku.
Avatars.io lets you quickly grab a URL to an avatar of yours from a few different services
A Signal in the Static
Moving from Craft CMS to Hugo and Netlify
What Do I Know?
The web moves fast, but it doesn't invalidate what you already know.
Create an RSS Feed Reader
Upgrading to webpack 4
Moving from Laravel Mix to webpack 4, and the performance benefits.
Do Not Track
How to use window.doNotTrack to decide when to use tracking.
My Local Environment Timeline
The Weary WordPress Dev
Theming with CSS Custom Properties
Page Visibility API
Use AppleScript to Automate with iTerm
DIY RSS Feed Reader
Building your own Feed Reader with Vue.js and Node
Craft Plugins Browser
A small project to browse Craft CMS plugins by popularity.
Client-Side Search with Algolia
Adding client-side search with Algolia.
Building My Site Part III: Fine Tuning
Final tweaks and performance improvements for my website.
Building My Site Part II: Setup
Setting up my new website with Craft CMS.
Building My Site Part I: Decisions
Building my website with Craft CMS.
Up and Atom
The (Clip) Path of Least Resistance
Timber and Twig Reignited My Love for WordPress
Expanding menu with GSAP
Lightweight Utility Object
Responsibilities of a Web Person
Getting Started with WordPress and Unit Testing
Building a full-screen overlay
Quickly build a simple grid with Sass
Wait, what am I meant to be doing again?
Web Project Boilerplate - Browserify with ES6