JavaScript packages that I have worked on, some on my own and others as a contributor.


Curi is a single page application router. Curi contains a core package that provides the routing functionality along with a number of other packages that allow you add functionality to your router and integrate it into React/Vue projects.


Hickory provides the core navigation functionality for the Curi router. It provides modules to use both in the browser (where it will interact with the browser's history API) or anywhere else (where it will keep track of history on its own). Hickory is heavily inspired by the History package, which powers React Router.

React Router

Collaborated on the implementation of React Router v4, including writing parts of core components, adding tests, and expanding documentation.


A collection of React components that can be used in conjunction with React Router v4. These include whenActive, a higher-order component factory that can be used to style components when their location matches the current URL, and <OnUpdate>, which takes a function to call whenever the location changes.

Data Collection


A collection of projects for collecting data from web pages.

  1. Forager is a Chrome extension to create rules to capture relevant data in a web page.
  2. Gatherer is a Python library that uses rule sets created by Forager to automatically crawl and collect the data.
  3. Granary is a simple Python server that communicates with Forager to upload rule sets created by the user.

SNL Stats

Chart data on Saturday Night Live cast members and seasons. Data collection rules were made using Forager and collected using Gatherer. Visualizations are made with d3.


These websites are hosted on Heroku and may take a few seconds to load at first.


Complete challenges by decrypting messages. Built with Django and React.

We Play

Play simple games with your friends. You can create a lobby with a name and password, pass those on to your friends, then compete against them in Tic Tac Toe and Four. Built with Node, React, Webpack, and Socket.IO.


Create imaginary planetary systems orbiting around stars. Built with Django.

How Far?

Workout website where you can set goals to workout (run, bike, swim, etc.) the equivalent distances between major cities and track your progress as you add more and more workouts. Built with Django.



Simple visualization of books that you have read (or in its current form, more accurately put, books that I have read).


A Chrome extension that gives a new overlay to Hacker News. The extension adds functionality to minimize comments, save and hide stories, and ban a domain (to prevent any stories from the domain showing up in the submission feed). Pages that aren't implemented will show up as if the extension wasn't running.


A map to see where college football team players come from. On GitHub (Old version Here)

Annotated Meals

annotated meals

Write down the recipe for a dish as you watch a video of something making it on YouTube.

Pixel Art

Simple tool to draw pixel art. Uses React, MobX, and the canvas element.


Planet Scale

Planets visualization

Visualization about the scale of the planets in the Solar System.

Animated 2015 NFL Schedule

football schedule preview

Animated map showing the 2015 NFL schedule.

Paul Name History in the US

Paul name history

Counts (minimum of 5) of the number of male babies named Paul each year in the US. Uses d3/topojson.