NYT Crossword Plus

A stat sheet

January 2022

The Daily Mini has been a race my friends and I have been playing against each other in for years. Being runners, we love both competition and data, so we have always wanted a more advanced leaderboard than the one on the NYT. So I created NYT Crossword Plus.


This project is made up of several parts:

  • A website for viewing data
  • An API for updating and reading data
  • A webscraper that runs daily
  • A Discord messaging bot


When I first started, I created a simple Chrome extension that updates a database whenever I load the leaderboard page. This depended on me to update the times manually, so it was not an ideal solution for a webscraper. Luckily a friend of mine managed to get the webscraper to work automatically, so our times can always be recorded. It now runs on Google Cloud once daily before the crossword closes.


I decided I wanted to experiment with NextJS for this project. NextJS has a few features I was excited to use:

  • Generated pages from folder structure, which I found helpful for making /group/<name> routes
  • Serverless functions built in, which was important for making a robust API
  • Server Side Props, I ended up not using these because it increased the page load time, however I hope to use this feature at another point in the future

The home page contains some info and links, the more interesting page is the group view. You can see a test group online here.

Discord Bot

To make the Discord bot, I decided to use Autocode, because it is free and easy to setup. All I had to make was an endpoint for it to read daily stats from, and the rest was just formatting.