Goupfile – file sharing with support for multiple files under a single URL, easy to remember URLs that don’t have ambiguous characters, and QR codes for transfer to and from mobile devices.
Stripped YouTube – Firefox add-on that removes distractions on YouTube.
undo.studio – type design and software products.
Timeless – the Hugo theme used by this blog. It emphasizes readability and good typography.
Blognow – zero config static site generator for blogs, like Hugo but with a lot less configuration.
Not quite ready
These are in development.
up – command line tool for uploading files to various file sharing services.
Flowstash – a twist on issue tracking tools that turns GitHub or GitLab issues into an open canvas.
Things that are deployed, published, or otherwise finished.
Faview – see how an image looks as a favicon in the browser tab.
Pitch – web version of the original Pitch Card Generator, built with Next.js and deployed to Vercel. This was the first time I tried out Next.js/Vercel, and it was by far the best developer UX I’ve seen.
xiaobiji.co – my other blog where I practice writing Chinese. The name means “little notes”.
Musearch – search the same query in multiple search engines. Useful for checking how well your content shows in up various search engines.
Deformat – strip extra whitespace from text.
is-am-pm – Node.js package that tells you whether a number on the 24-hour clock or a date corresponds to am or pm.
mmap-demo – demo of the mmap system call for memory-mapped files in Unix.
cshear – concurrent shearsort algorithm in C using pthreads.
These are no longer in active development or use.
uSay – middle school project whose full name was uSay Change. It was a site where people could submit ideas on how to improve products or services. Like Canny but a lot worse. Lots of hacked together PHP.
Pitch Card Generator – made this with a friend for a high school softball coach.