DIY Election Desk

Authors
Affiliations

Gabe Osterhout

Idaho Secretary of State

Andrew Heiss

Georgia State University


Use the tidyverse, {targets}, and Quarto to build your own lightning fast, auto-updating election results reporting website!

Resources

Original Idaho sites

Code

posit::conf(2025)

Other

Overview

This process has two independent moving parts (complete instructions for running each pipeline included in the projects’ respective READMEs):

  1. The etl-pipeline project runs every X minutes and is in charge of extracting, transforming, and loading (ETL) the most recent data. With the magic of {targets}, it will only process remote data that has changed since the last time the pipeline ran. The final outputs (maps, results table, and reporting status) are stored remotely in an S3 bucket (though in this example, outputs are stored locally).

  2. The website project runs every Y minutes and uses {targets} to pull the latest data from the S3 bucket (or here, local data storage for the ETL pipeline). It then re-builds and deploys the Quarto website (this website!) if needed.

Overview of the two pipelines
Back to top