1. Tailwind Is...

    I don't get all this hate for Tailwind. It's not going anywhere, so it's probably time to move on.

  2. Using the Least Amount of JavaScript

    Applying minimal JavaScript by resorting to less than standard ways of doing things.

  3. The Web Should Be Simple

    We sure know how to overcomplicate things. Or maybe we don't understand the building blocks of what makes a website accessible.

  4. Rediscovering the Joy in Coding

    Going back to basics by putting aside the typical frameworks and making my own rules.

  5. Popover API

    For many years, we had to do this manually or rely on third-party solutions. Now, though, it's a different world. In this post we'll take a quick look at how it works with a demo.

  6. New Year, New Design

    It's a brand new year full of the same old stuff, but hey look, a new design for the site!

  7. Scrollable Container Controls with React Hooks

    Revisiting some old code to convert it to using hooks.

  8. Multi-Select Checkboxes with React Hooks

    An old code demo revised to use React Hooks.

  9. Distant Sound

    Small experiment with sound based on scroll distance.

  10. Fixing MS Edge Battery Drain on M1 Mac

    Edge was destroying the battery life on my Macbook Air M1

  11. Vue Timeline

    An infinite scroll timeline component written for Vue 3.

  12. New Job 🎉

    Interesting times when it comes to career progression. Back to React.

  13. My 2020

    A recap of the year.

  14. Vue Data Table

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

  15. Coping with Bad Dates

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

  16. IE11 Placeholder Transition Issue

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

  17. DraftJS: Mentions Plugin with Scrolling and Keyboard Navigation

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

  18. Text Selection Particle Effects

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

  19. Building an Appreciation System

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

  20. Self-Host Google Fonts

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

  21. Image Parallax and Blur with Tornis

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

  22. Task Management

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

  23. Multi-Select Checkboxes with React

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

  24. Web Cloaks

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

  25. Clever Logos

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

  26. Derived Stores With Svelte

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

  27. Scrollable Container Controls with React

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

  28. 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.

  29. 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.

  30. 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.

  31. Improving Client-Side Performance

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

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

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

  33. Fathom Analytics

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

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

  35. A Signal in the Static

    Moving from Craft CMS to Hugo and Netlify

  36. What Do I Know?

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

  37. Upgrading to webpack 4

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

  38. Do Not Track

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

  39. Page Visibility API

  40. DIY RSS Feed Reader

    Building your own Feed Reader with Vue.js and Node

  41. Craft Plugins Browser

    A small project to browse Craft CMS plugins by popularity.

  42. Variable Fonts

  43. Client-Side Search with Algolia

    Adding client-side search with Algolia.

  44. Building My Site Part III: Fine Tuning

    Final tweaks and performance improvements for my website.

  45. Building My Site Part II: Setup

    Setting up my new website with Craft CMS.

  46. Building My Site Part I: Decisions

    Building my website with Craft CMS.

  47. Building a 'Now Playing' Feature

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

  48. First Seven Jobs

  49. Resourceful Learning

  50. Up and Atom

  51. Pace Yourself

  52. Building a full-screen overlay

    A JavaScript approach to a full-screen overlay

  53. Foundation 5.5