Building the Ticket Trap, one of their most popular 2018 projects, using the JAMstack with Hasura
A case study of ProPublica Illanois
ProPublica Illinois is an independent, nonprofit newsroom that produces investigative journalism. Headquartered in Chicago, it is the first regional publishing operation of ProPublica, dedicated to stories about big issues that affect people living and working in the state of Illinois.
In addition to their regular reporting, ProPublica Illinois builds interactive news applications that give their readers a deeper insight into their stories. An example is their recent release of the Ticket Trap, an interactive database that lets you search through records of parking tickets issued in Chicago since 1996. The Ticket Trap was built by David Eads, a news applications developer at ProPublica Illinois.
Hasura had a significant impact on the development of the Ticket Trap in terms of reducing the time to go live & the development resources required, and cutting down on the maintenance efforts required once the app had been deployed.
Choosing the technology stack
David was very careful with his technology choices, wanting to ensure that the project’s maintenance debt was as low as possible. At the same time, he wanted the pages to load fast (mission critical for a news organization where each view matters) and cost as little as possible to serve.
David decided to use the JAMstack with GatsbyJS for the frontend. While Gatsby solved a lot of problems, David was having trouble interfacing the frontend with really large data sets - an ideal API would return large volumes of data, potentially millions of rows at a time. That’s when he came across Hasura.
David found that Hasura was great for his data journalism use-case. He really appreciated the ease of use and ease of deployment.
Results from using the JAMstack with Hasura
- By using PostgreSQL and querying with GraphQL, David was able to significantly cut down on time spent dealing with data management and spent more of his time on other parts of development like design and frontend performance.
- The JAMstack architecture of sourcing data at build time, and deploying a static site, dramatically simplified the application development & deployment process. David was able to take end-to-end ownership without needing to call on other expertise within the organization, which saved resources and added flexibility.
Released just before Christmas 2018, the Ticket Trap turned out to be one of the top 5 projects in terms of traffic for the entire year for ProPublica Illinois.
Do read David’s in-depth blogpost about building the Ticket Trap and the tech stack here!
David is currently working on another news application in which he will give API access to multiple stakeholders (other investigative teams and maybe even the public) to examine data. He will be using Hasura and GraphQL to provide this API.
He now uses Hasura regularly to serialize complex relational data into JSON for a variety of daily data-journalism tasks. This is one of Hasura’s most simple features, but an extremely important one for day-to-day data journalism.
He expects to use the Gatsby + Hasura stack extensively for his work going forward.
This case study was prepared basis a discussion with David Eads, News Applications Developer at ProPublica Illinois.