Pardonned - Exploring Federal Pardons

Tracking Presidential Pardons

Pardonned is a project that tracks federal pardons since Bill Clinton took office. It’s an exercise in leveraging AI to scrape, model, and present data that is technically public but not easily accessible.

Why it Exists

I’ve seen a lot of news stories over the past 18 months about the appearance of impropriety in the pardons issued by Donald J Trump, and I wanted to see the data for myself. I also wanted to compare the pardons issued by Trump to those issued by previous presidents, and see if there were any trends or patterns.

How It Was Built

  • I analyzed the data on the DOJ’s Office of the Pardon Attorney website and created a data model to represent the information I wanted to track.

  • Used GLM 5, and eventually GLM 5.1 to build a scraper that could extract the data from the DOJ website and map it to my data model. GLM recommended using Playwright to handle the scraping, otherwise the DOJ WAF would block the scraper/useragent.

  • At first I wanted to host the data on Supabase, but realized that it’s overkill, the data isn’t complex and I didn’t want to use up my free project slot, so I decided on SQLite.

  • Around the same time, I had heard about Google Stitch, so I thought I’d give it a try to see if it could help me design the site. I gave it a prompt describing the data I had, and it came back with a pretty good design, as well as a DESIGN.md file that outlined the components and layout of the site.

  • GLM 5.1 wasn’t aware of Astro’s custom content loaders, but once I pointed it in the right direction, it did a decent job of writing code that would load the data from the SQLite database and render it on the frontend.

  • I passed Opencode the DESIGN.md file from Google Stitch, and it was able to generate the code for the frontend based on the design specifications.

Check it out at: Pardonned on GitHub Check out the live site at: Pardonned.com

I posted on Show HN and got some excellent feedback. The biggest take away for me was that this was an interesting project, not just for me personally but people wanted this information to be more accessible.