Personal Projects

A lot of small toy projects can be found on my GitHub and Glitch (and a number of small plugins and scripts can be found on my Gists), mostly these exist to play around with some tech or solve a very small problem for myself. Here's an assortment of things that I'm proud of though:

  • Year in Fractions , a Twitter bot inspired by @year_progress , powered by Express, tweets daily how far through the year we are as a (usually approximate) fraction [retired]
  • This very site , a Fresh site running on Deno Deploy, ported from Gatsby
  • Wizzbo , a Discord bot that acts as a playground for me to try out ideas, but with the functionality to deploy subsets of commands as their own sub-bots
  • Consnake , Snake, but playable in the devtools (opening devtools here will start the game 👀)
  • Christmas Eve Eve , a very dumb single-page thing based on an old XKCD
  • PuppetDF, what started as a hacky proof-of-concept that turned out to be surprisingly useful. An app that takes a URL and uses Puppeteer (a headless Chromium browser) to output a PDF. (Glitch has dropped support for Puppeteer, so may stop working)
  • slice-or-substr, a kind of broken toy that demonstrates how slice, substring and substr all work in JavaScript, because I can never remember
  • Doushi Flash , a Japanese verb flashcard generator. Generates an image with a random Japanese verb, its translation and a couple of conjugations
  • myuseragent, a super simple app that simply logs your user agent string (with a JSON option too)
  • Bust-a-Ghost, a little "target practice" type game I threw together on a sick day


I've casually toyed with making small games here and there (which can also be found on my Itch.io ), and here's what has stuck:

  • British Bulldog , a game made in collaboration with a few friends with minimal communication, built in the Lua-based framework LÖVE, most of my work was refactoring, completing features and polishing, but I also added a splash screen inspired by old cracktros
  • Build-n-Blocks , a game made as part of a small "Build" themed game jam in a fortnight, also built in LÖVE. The game is a 1-bit falling block puzzle game, with a Gameboy RPG-esque overworld
  • Card Sharpshooter , a Playing Card-themed FPS prototype built in Godot. A collaborative effort, "my" game of 3 we worked on together.

I've also started entering a few small game jams, to experiment with prototypes and build the habit of finishing small projects:

  • Bunslinger at High Noon , an arcade-y restaurant sim game in the style of a Nokia 3310 for Nokia Jam 5
  • Ball Room , a simple high score game made for the 3-hour weekly game jam, Trijam
  • Pongaconda , a rough prototype of a game combining Pong and Snake, built in a few hours for PongJam

Work in progress

I have a few private work-in-progress projects that will hopefully see the light of day:

  • Mycross - a web utility to create custom puzzles for Mario's Picross for the original Gameboy
  • An untitled JavaScript game, a combination of Snake and a typing game, built from the ground up without any engines or libraries. I started this a while ago, before getting into Love2D and Godot, but plan on finishing it someday
  • A Playdate port of Build-n-Blocks - utilising a wrapper around the portions of the Love2D API that I'm using
  • ...and more!

Other coding miscellany

I bought a Bangle.js 2 smartwatch, based on Espruino (embedded JS), in early 2024, and have been working on a few small apps:

  • davidsharp/watch , a simple watch face, with a big digital time display, a seconds ticker, kanji day of the week and pedometer and heart rate display
  • davidsharp/bangle-js-snake , a simple proof-of-concept Snake clone using screen swipes to control direction

I've participated in Advent of Code for a number of years (but have yet to fully complete a year), usually in terse JavaScript, and keep my code here: davidsharp/advent-of-code

Here's some xbar (fka bitbar) plugins for macOS (all GitHub gists):

  • Weather, a weather plugin that uses wttr.in
  • Spotify, a plugin that displays the currently playing song, with some shortcuts and controls
  • Shuffle Spotify, a plugin that adds a shuffle/unshuffle button to the menu bar
  • Clipboard Spy, a plugin that shows what's on your clipboard, with an option to clear it
  • COVID Stats, a plugin that uses diseases.sh to get the country's COVID stats (API no longer updated)
  • Toggle Mono/Stereo audio (may no longer work), a plugin that adds a button to toggle accessibility options for mono/stereo audio