Tech Stack

This page describes the technologies used to build and deploy the US Vehicle Trends dashboard.

If you use this dashboard or its data in your work, see the Cite page for citation information.

Site Framework

The dashboard is built with Quarto, an open-source scientific and technical publishing system. Quarto renders the .qmd (Quarto Markdown) source files into the static HTML pages that make up this website.

Data Processing

All data processing and analysis is done in R. Key R packages used on the site include:

Package Purpose
dplyr Data manipulation and transformation
reactable Interactive data tables
htmltools HTML generation for embedded content
kableExtra Enhanced table formatting
pmtiles Generation of PMTiles tiled map data for the HHI map
vehicletrends Summary data package for this project (see Cite)

Interactive Charts

Most of the interactive chart visualizations are built with echarts4r, an R interface to Apache ECharts.

The interactive map on the Market Concentration page is built with MapLibre GL JS, an open-source map rendering library. The underlying census tract geometries and HHI data are served as PMTiles, a cloud-optimized format for tiled map data. The PMTiles archive is generated in R using the {pmtiles} package (which wraps Tippecanoe) and hosted on Cloudflare R2 for low-latency delivery. The base map tiles are provided by CARTO.

The HHI Explained page features an interactive Shiny application that runs entirely in the browser using Shinylive, which compiles R and Shiny to WebAssembly via webR. This means the app requires no server — all computation happens client-side.

Hosting and Deployment

The site is rendered automatically via GitHub Actions on every push to the main branch and on a weekly scheduled build. The rendered site is deployed to and hosted on Netlify.

Acknowledgements

This project would not be possible without the work of many open-source developers and communities. I include a comprehensive list below, but I want to especially thank Kyle Walker not just for developing amazing R packages like {pmtiles} but also for creating so many helpful posts on his website from which I learned so much.

  • Quarto — J.J. Allaire, Charles Teague, and the Posit team for creating a powerful publishing framework.
  • R — The R Core Team and the broader R community.
  • dplyr — Hadley Wickham, Romain François, Lionel Henry, Kirill Müller, and the tidyverse team.
  • reactable — Greg Lin for a flexible interactive table library.
  • echarts4r — John Coene for bringing Apache ECharts to R.
  • Apache ECharts — The Apache Software Foundation for a powerful charting library.
  • MapLibre GL JS — The MapLibre community for an open-source map rendering library.
  • PMTiles and Protomaps — Brandon Liu for a cloud-optimized tiled map format.
  • pmtiles (R) — Kyle Walker for bringing PMTiles generation to R.
  • Tippecanoe — Felt and Mapbox for building efficient vector tilesets.
  • Shinylive and webR — George Stagg, Winston Chang, and the Posit team for running Shiny apps entirely in the browser.
  • CARTO — For providing base map tiles.
  • Cloudflare R2 — Cloudflare for object storage hosting.
  • htmltools — Joe Cheng, Carson Sievert, and the Posit team.
  • kableExtra — Hao Zhu for extended table formatting capabilities.
  • GitHub Actions — GitHub for CI/CD infrastructure.
  • Netlify — For site hosting and deployment.
  • Posit Cloud Connect — Posit for hosting the interactive chart applications.
  • MarketCheck — For providing the underlying vehicle listings data.