Skip to main content Accessibility Feedback

Open Source

The web community has given me a lot. I like to give back.

JavaScript Plugins

  • Validate. A lightweight form validation script.
  • Smooth Scroll. Animate scrolling to anchor links.
  • Gumshoe. A framework agnostic scrollspy script.
  • Atomic. Ajax requests with chained success/error callbacks and JSON parsing.
  • Astro. A responsive, mobile-first navigation menu.
  • Drop. Mobile-friendly dropdown menus.
  • Houdini. A progressively enhanced expand-and-collapse and accordion widget.
  • Modals. Simple, mobile-friendly modal dialogue windows.
  • Tabby. Lightweight toggle tabs.
  • Form Saver. Let users save, reuse, and delete form data.
  • X-Ray. Let users toggle password visibility.
  • Right Height. Set variable content containers to equal height.
  • Sticky Footer. Dynamic, responsive sticky footers.
  • petfinderAPI4everybody. A JavaScript plugin that makes it easier to work with the Petfinder API.

JavaScript Helper Functions

  • ready. Run functions after the DOM is ready.
  • extend. Merge two or more objects together.
  • getClosest. Get the closest parent element that matches a selector.
  • scrollStop. Detect when someone stops scrolling.
  • onClickOrTap. Run a callback after a click or tap, without running duplicate callbacks for the same event.
  • isInViewport. Detect when an element is in the viewport.
  • getOffsetTop. Get an element’s distance from the top of the document.
  • getParents. Get all parent elements up the DOM tree.
  • getParentsUntil. Get all parent elements up the DOM tree until a matching parent is found.
  • getSiblings. Get all siblings of an element.
  • nextUntil. Get all following siblings of each element up to but not including the element matched by the selector.
  • getElem. Get an element with querySelector without throwing an error if it’s not found.
  • getQueryString. A simple helper function for getting query string values.
  • ValidityState Polyfill. A polyfill for the ValidityState API. Also adds some missing features for newer browsers that don’t yet support the full API.


CSS Components

WordPress Themes and Plugins


A whole bunch of products, services, and tools that I use to make things for the web. View my recommendations →