ChatCBT (Obsidian plugin)

AI-powered journaling plugin for your Obsidian notes, inspired by cognitive behavioral therapy.

Etymology Lookup (Obsidian plugin)

Get etymology terms for words in your notes in one click, using data from Online Etymology Dictionary


Productivity tool for prompting an LLM from the command line. Also can write files

Discord Spam Blocker

Discord bot template that protects servers from typosquatting nitro scam attacks


Discord bot template that allows servers to role-gate their channels and approve new members via a emoji votes on applications. Originally built for Chainforest DAO.


npm library for building light-weight static site generators based on markdown files


npm library for looking up English etymology in Node and the browser, using data from Online Etymology Dictionary

Chrome extensions


A chrome extension for detecting logical fallacies in web text


Spotify ad blocker for Chrome that plays soothing music in place of jarring ads


A hacky solution for hiding sensitive environment variables in Postman while livestreaming


Power of Vegetables

Marketing site for my self-published children's book about farting deer

This website

So meta. Custom static site generation with vanilla everything. - DEPRECATED 🪦

A multilingual tutorial site for RedwoodJS, powered by crowd-sourced translations


Am I Saying it Right?

Simple web app for checking your pronouncing of words in various langauges (check out my tutorial to make your own). Try it here

Inspirational Poster Maker

Entry in a four-hour hackathon. Make Inspirational posters for your home office in seconds and export them for printing. Try it here

The L Ships

On-chain SVG NFT (ERC-721) that generates random unique pairs of TV show characters

Smalltalk forecaster

Entry in a four-hour hackathon. Gets the weather for a given city and produces a forecast of the smalltalk you'll likely hear. Try it here

How much dough?

Entry in a four hour-hackathon. A basic currency conversion tool that uses loaves of bread to help you understand the value in terms of USD. Try it here

Tones of the Universe

Experiment to "hear" the constants pi and phi by mapping their digits across an octave, starting at 432Hz. Try it here


A generative art project that generates random configurations of tea leaves at the bottom of a mug. Divine the future with BS.


JASO Interactive Sister Cities Map

A bilingual and interactive view to learn about and fly between Japan and Oregon's sister cities. Custom built for the Japan-America Society of Oregon (JASO)

"From Hokkaido with Love" international shipping widget

A plugin that works around the limitations of a pre-fabbed e-commerce site to give this small business the ability to customize their international shipping information via Airtable. code


Make a CLI tool with Node and OpenAI to boost your productivity

Automate daily Tweets with Postman and the Twitter API v2

Quick HTML/CSS hack for prettier Japanese titles

If Web Apps Could Talk — Intro to the Web Speech API

How to hack yourself a custom ActiveCampaign form component in React

Automation with Google Apps Script and APIs

Intro to Git and GitHub

Follow me on and Medium for more


(Gen Ed Podcast) Transpacific Translation: From America to Japan to Peru Pt.1 & Pt.2

Targeting high school students who are undecided on their career path, I share lessons learned over my meandering career journey from interpreter in Japan to remote web developer. Themes include the importance of curiosity and failure.

(CS Talks) Transitioning Into Tech

I am interviewed by Çetin Kaan Taşkıngenç of IEEE Yaşar Üniversitesi Öğrenci Kolu about alternative pathways into tech. Themes include translating skills accross industries and the benefits of coding bootcamps vs. universities

(FS Jam Podcast) Multilingual Documentation with Claire Froelich

I discuss the trials, tribulations and wins of launching and maintaining an open source mutlilingual documentation website for RedwoodJS, with host and friend Anthony Campolo.