I love creating things. It’s a big part of why I enjoy software development, and it often motivates me to take a DIY approach to solve my problems. Below are some of my creations; so far they’re all computer projects, but I hope to add more non-tech creations soon.
git-personal: A Docker image for a simple, single-user Git server with support for mirroring to other Git servers. I use this to maintain full control of my Git repos while still making them available to the world on GitHub.
hugo-site: The code for this website! It’s a simple static site built with Hugo and my own custom layouts.
vim-wayland-clipboard: A simple Vim plugin to integrate the
+register with Wayland’s system clipboard using wl-clipboard.
diy-static-site: The code for a previous, DIY version of this website. I use pandoc to convert Markdown to HTML and have a Makefile to orchestrate the whole process. (But I’ve since moved on to Hugo.)
topdf: Bash script wrapper for pandoc that I use to convert (primarily Markdown) files to PDFs. I appreciate pandoc’s incredible power and flexibility, but I can’t ever remember what options to pass to it without this script.
Home Server: An old desktop PC running Nextcloud and Pi-hole. I’ve had a lot of fun getting into self-hosting and have learned tons along the way.
restic-rclone: Dockerfile for running scheduled backups using restic with rclone as the backend. I used to run this on my home server but have since abandoned it in favor of running restic and rclone directly on the host OS to integrate my backups with ZFS snapshots. (There’s also an image available on Docker Hub, but it’s quickly becoming out-of-date…)
Webfolio: Theme for Grav CMS that powered my old portfolio website. This was one of my favorite projects because other people actually used it; I loved getting an occasional email thanking me for the theme or asking for help getting it working. (I’ve since moved on from Grav for simplicity’s sake, but I’m still happy to help existing users! I’d also love to find a new maintainer – email me.)
jsonbody: Golang middleware for receiving, validating, and sending JSON in HTTP requests/responses. A few years ago I started writing a web server in Go and was surprised that I couldn’t find an easy way to manage JSON request/response bodies, so I wrote this.
arch-install: My Arch Linux install scripts from back when I had the time to run Arch.