Dashboards in READMEs


I take a lot of text-based notes, and I've got a script that commits changes to these notes every hour to a private GitHub repo. I find the Git-tracked "lines added" and "lines deleted" to be a fun proxy for productivity. A few months ago, I created a GitHub Action to send me "progress reports" every three days that look like this:

Over the last three days, you've made these changes to Markdown files:

8 files changed, 88 insertions(+), 25 deletions(-)

For context, here are the same statistics for the last thirty days:

185 files changed, 2576 insertions(+), 213 deletions(-)

This has been pretty motivating! I took this a step further by embedding a "dashboard" into my GitHub README.md. I set up a daily Action to re-generate some useful plots from Git data, publish the plots as assets for a GitHub Release, and then link to the Release from the README. It's nice that I can keep overwriting the assets on an older Release so that the README image URLs can be constant. (I guess I could also just use the latest Release, but that's a bit less flexible since we might also want to use the Releases feature in a legitimate way.)

README dashboard

This is basically status badges but with a different indicator of repo health!

(We'd also like to control the Cache-Control header for the Release assets so we can prevent caching. I think this is what most status badge services do. But I don't think I can control this for Releases.)