A walkthrough of how to create an optimized and performant responsive census tract choropleth map with Mapbox

A animated zooming video of the median household incomes, by census tract, in and around Cook County, Illinois.

One of the most common ways to visualize data is through mapping. However, in presenting data in a map format, a multitude of options must be considered. First, what type of visualization will work best? A filled (“chloropleth”) map, a symbol map, a density map, a hexbin map? …

A technical exploration into saving contact form emails into Google Sheets using AWS serverless tools

An email contact form overlaid on a congressional district map of the United States.

In working with the team at Grassroots Analytics, Graphicacy’s engineering team tackled a particular challenge: how to ensure minimum costs to a client while storing changing data and providing updates on fast-changing predictions. Our goal was to maximize the impact of PrimaryCast, a data visualization and mapping tool that provides…

An interactive geospatial and forecasting tool that provides investors with information on potential agriculture investments in Ghana.

A map of Ghana with the district of Nadowli selected and detailed maize, soybean, and rice production analytics.


The New Alliance for Food Security and Nutrition is an initiative that builds upon previous commitments to abate hunger in Africa including, Feed the Future, Grow Africa, and the Global Agriculture and Food Security Program. New Alliance partners include the G8, private companies and several African countries, namely Ghana, Ethiopia…

Within the United Kingdom there are approximately 650 constituencies, which makes for a highly detailed map. A detailed map means a larger file size and therefore more heavy processing on the client side, so when building the UK Political Atlas we needed a solution that wouldn’t slow down client-side rendering when exploring different constituencies.

We decided on an offline approach of rendering each constituency with d3-node (which allows for static rendering with the power of d3) and then converting the rendered SVG into a PNG with sharp. Within one minute, we had 650 static PNG files of ~7kb each; compared to the 6mb GeoJSON file with which we started. Now when a user loaded a constituency detail page the browser only had to retrieve a single small file and the page would load fast even on mobile or older browsers.

Clustering of customer interaction points over a 5 second period

At Kabbage, we provide access to small business loans for thousands of customers and, subsequently, need to provide exceptional customer service. Many times this service comes from a customer navigating our user-friendly website, but more often than not an on-the-go small business owner will want to call in and talk…

Christopher Lanoue

Engineering and Innovation Director, Graphicacy

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store