2021
Yor
npm package
The successor to MuseCLI, designed to be easier to maintain by splitting it into packages: @yor/core for building Discord bots and @yor/cli for scaffolding projects and generating boilerplate. Reusable plugins extend common functionality, much like libraries for web frameworks.
2021
Embed Paginator
npm package
A utility class for discord.js that makes it easy to create paginated embeds. It is designed to be highly customisable, and feature suggestions are welcome through GitHub issues.
2020Broken
Aniseiyuu
Compare the voice actors (seiyuu) of two anime to find characters who share a voice. It uses AniList's GraphQL API and was mainly a learning project. AniList's rate-limit policy from July 2025 stopped it from working properly, and I have not updated the code since.
2020Broken
Subtitles
Collaboration with Eray Koschell
A web platform for downloading subtitles for movies, TV shows and anime without clutter or ads. Eray built the Vue frontend and I built the backend, integrating the OpenSubtitles and TMDB APIs. In March 2023 we moved it from Heroku to Oracle Cloud Infrastructure because of Heroku's payment policy changes, which taught me Bash over SSH and NGINX web server setup. The APIs it depends on have since changed and I have not updated the code, so it no longer works.
2020Retired
MuseCLI
npm package
A command-line tool that scaffolded Discord bot projects in seconds, modelled on Angular's CLI, and added the music bot features people kept asking for. I found it hard to maintain and abandoned it in favour of Yor. The name comes from μ's, the idol group in Love Live!.