Almost everything listed on this page was built for the sake of my own learning. Quality and completeness are variable. No guarantees.
R Packages
Selected packages. All are hosted on GitHub. Many are on my R-universe.
Useful
Made to serve a ‘real’ purpose. Other people could feasibly find them useful. Nothing grandiose. Alphabetical.
| {aftables} | 
Generate best-practice stats spreadsheets for publication (renamed from {a11ytables}) | 
  | 
| {altcheckr} | 
Assess image alternative (alt) text on websites | 
  | 
| {backtick} | 
Insert backtick structures with an RStudio Addin | 
  | 
| {badgr} | 
Generate URLs for shields.io metadata badges | 
  | 
| {bd2q} | 
Helpers to convert a {blogdown} blog to Quarto | 
  | 
| {blogsnip} | 
RStudio addin to insert Rmd code snippets, especially for {blogdown} | 
  | 
| {coloratio} | 
Check accessibility of color contrasts | 
  | 
| {dehex} | 
Learn to assess a colour hex code by eye | 
  | 
| {defenestrate} | 
Personal helpers wrapping {Microsoft365R} | 
 | 
| {dialga} | 
Translate R to cron to English | 
  | 
| {gdstheme} | 
{xaringan} theme and template, (unofficial) Government Digital Service style | 
  | 
| {gex} | 
A dependency-light hex-logo builder | 
  | 
| {ghdump} | 
Download/clone all of a user’s GitHub repositories for archiving purposes | 
  | 
| {gpx3d} | 
Make an interactive 3D chart of your workout route from a GPX file | 
  | 
| {hexbase} | 
Make a very simple hex logo with no dependencies | 
  | 
| {linkrot} | 
Detect dead hyperlinks on webpages | 
  | 
| {oystr} | 
Wrangle Oyster-card data supplied by Transport for London | 
  | 
| {pixeltrix} | 
Make pixel art interactively in a plot window, get a matrix, make a gif | 
  | 
| {quartostamp} | 
RStudio Addin to insert (‘stamp’) useful Quarto elements | 
  | 
| {r2eng} | 
Translate R to English | 
  | 
| {snorkel} | 
RStudio Addin to help document functions with {roxygen2} | 
  | 
| {trapinch} | 
Get data from the PokéAPI service | 
  | 
| {wordup} | 
Convert Word tables to Govspeak Markdown | 
  | 
 
 
Conceptual
Experiments, games, hacks, memes and subversion. Alphabetical.
| {ActionSquirrel} | 
A squirrel game in your R console made with {R6} | 
  | 
| {cran} | 
Convert volume measurements to units of uncleaned herring | 
  | 
| {choosethis} | 
Off-label concepts for executing R code from links in the console, using {cli} | 
  | 
| {emojiscape} | 
Print a little emoji scene to your console | 
  | 
| {hokey} | 
Tiny game demos with user input via {keypress} | 
  | 
| {hiscore} | 
A game with a system for saving high scores persistently | 
  | 
| {kevinbacran} | 
The Six Degrees of Kevin Bacon but for CRAN authors | 
  | 
| {pico} | 
Generate the aboslute minimum R package skeleton | 
  | 
| {plunderplot} | 
Interactively extract coordinates from an image of a plot | 
  | 
| {potato} | 
Play ‘Potato’ in the R console, a one-page RPG by Oliver Darkshire | 
  | 
| {r.oguelike} | 
A tile-based roguelike toy for R’s console, featuring procedural dungeons and enemy pathfinding | 
  | 
| {remorse} | 
Text to Morse Code to audio | 
  | 
| {safar6} | 
A playable text-based simulation of Pokémon’s Safari Zone using {R6} | 
  | 
| {soccercolleagues} | 
Find footballers’ common team mates | 
  | 
| {skyphone} | 
Fetch and sonify GitHub Skyline contributions data | 
  | 
| {tide} | 
Edit a data.frame in a spreadsheet-like editor, get code to reproduce it | 
  | 
| {tamRgo} | 
A persistent cyberpet in your R console | 
  | 
| {tidyquiz} | 
A {tidyverse} quiz via {learnr} hacking | 
  | 
| {tilebased} | 
Move a sprite around a procedurally-generated map inside an R graphics window | 
  | 
 
 
Shiny apps
Hosted

| Animal Crossing Popularity Contest | 
Swipe left or right on villagers from Nintendo’s Animal Crossing | 
   | 
| LeWitt ReMix | 
Remix Sol LeWitt’s art for #RecreationThursday | 
   | 
| Randoflag | 
A randomised flag challenge for new browser tabs | 
   | 
| What’s your Hadley number? | 
Find shortest paths to Hadley Wickham in the CRAN authorship graph | 
   | 
 
 
Shinylive

Serverless. Runs entirely in your browser.
| CRAN deadlines | 
See which CRAN packages are at threat of archival | 
   | 
| Govspeakify tables | 
Convert a pasted table to Govspeak-flavoured Markdown | 
   | 
| Little pixel fun zone | 
A small interactive pixel-editor toy for the browser | 
   | 
| Not Balatro | 
Drag-and-drop card gaming in R with {sortable}? | 
   | 
 
 
Not hosted

You’ll have to download and run them yourself.
| Ages at World Cup 2018 | 
You’re really old and sports people are younger than you | 
  | 
| Deer-vehicle collisions in Scotland | 
Explore open data on deer strikes in Scotland, 2000 to 2017 | 
  | 
| Mission Across IOW | 
How hard is it to cross the Isle of Wight, UK, in a straight line? | 
  | 
| Read a colour hex code | 
Test yourself at reading colour hex codes by eye | 
  | 
| Tidyquiz | 
A {learnr} hack to generate a random {tidyverse} functions quiz | 
  | 
 
 
Websites
| matt-dray.com | 
This website | 
Quarto, Netlify | 
   | 
| rostrum.blog | 
Japes with R: tutorials, ephemera, memes | 
Quarto, Netlify | 
   | 
| Faxcrayon | 
A gallery of recreations/remixes/original art | 
RMarkdown, {bs4cards}, GitHub Pages | 
   | 
| Hastings Half maps | 
Interactive maps of the Hastings Half-Marathon route | 
RMarkdown, {flexdashboard}, GitHub Pages | 
   | 
 
 
Other
Code-based bric-a-brac. Alphabetical.
| Emojis to SVG | 
Script to fetch SoftBank’s 1997 emoji set (the first-ever?) and convert them to SVG format | 
  | 
| gamelad | 
An RStudio theme to mimic the original GameBoy’s green palette | 
  | 
| GitHub Gists | 
Snippets of code that solve a small problem and sometimes become blog posts | 
 | 
| Hex stickers | 
Hexagonal sticker designs, mostly for R packages | 
 | 
| londonmapbot | 
A (retired) social media bot that posts MapBox satellite images, made with {rtoot} and GitHub Actions | 
    | 
| Splendid R games | 
A list of games made with R | 
  | 
| Tidyswirl | 
A work-in-progress introduction to the tidyverse created with {swirl} | 
  | 
| Try R v4.2 | 
Try new features of R version 4.2 in the browser, thanks to Binder | 
   |