Portfolio · Updated May 2026

What I've Shipped

Twenty years in music production. In February I started using Claude as a coding partner, mostly to build the tools I'd been wishing existed (the studio I wanted, the eBay/Reverb shop I wanted, the home dashboard I wanted).

Below: what shipped, what runs in the background, and how it all landed in three months.

Shipping Products

Things people
can buy or use

Products with a public URL, a buyer, or a store presence. The Schwung modules sit underneath the framework card, since they all depend on it.

Patch Generator

Tempest Patchworks

Category-aware patch randomizer for the Dave Smith Tempest. Generates kicks, snares, hats, toms, claps, perc, and bass with four variants per category. Hardware-validated against the real machine.

TypeScript and Vite. SFZ plus SysEx. Gumroad release planned.

Book / Print

The Drum Machine Coloring Book

Thirty hand-drawn drum machines. Adult coloring book, paperback. The reference photos took weeks to source and verify against my own collection.

Amazon KDP. Vol. 1 in production for 2026.

Hardware Mod

HR-16 EPROMs & OP-1 Parts

Burned and tested HR-16 sound EPROMs (the early Akai/Linn drum machine ROMs) plus original OP-1 buttons and knobs. Sold on Reverb and eBay, shipped same week.

Day-to-day revenue stack. About to add E-mu Proteus displays.

This Site

justinjoe.com

The hub. Cloudflare Pages with a Brevo email funnel, product landing pages, and a manual library gated behind purchase. Edited live in Claude Code and deployed via Wrangler.

Plain HTML and CSS. Cloudflare Workers for the email API.

Automation Fabric

How it all
connects

The wiring matters as much as the apps. Most of what's below runs without me touching it. I check Slack in the morning and pieces have already moved.

Trigger What Claude does Output
launchd, every day at 9pm Scans my Claude Code session JSONLs and summarizes the day's work Slack #work-log digest
launchd, Sundays at 9:30pm Pulls YouTube, Gumroad, Patreon, and Brevo metrics for the week Slack analytics digest
Daemon, every 60 seconds Polls eBay Browse API and Reverb for gear that matches my saved searches Slack #deal-monitor alert
"ship it" in Claude Code Fetches unshipped orders from eBay and Reverb, applies package presets, picks the cheapest USPS rate Shippo label PDF, ready to print
Buyer message on Reverb or eBay Drafts the reply in my voice (the voice files keep it honest), posts it via the platform's MCP server Reply on the listing
"Remind me at X" in chat Writes a launchd plist that fires a Brevo transactional email Email arrives in my inbox on schedule
Edit to the site repo wrangler pages deploy on the working tree justinjoe.com live in under a minute
Coding session Serena MCP for symbol-level edits, Playwright MCP for browser testing Code committed and verified before I look at it

MCP servers in use

Slack Gmail Google Drive Google Calendar Canva Playwright Serena Open Brain

Scheduled jobs

work-log (daily) creator-analytics (weekly) deal-monitor (60s) reminder dispatcher listing-photo sync

Daily-Use Tools

Software I
live in

Personal tooling. None of these are products, but the count is the point. If I'm doing something twice, I build a thing.

Deal Monitor

eBay and Reverb gear-deal alerts to Slack. Polls every minute, deduplicates, won't shut up about a clean OP-1 under list.

Work Log Aggregator

Scans Claude Code session JSONLs each night, condenses what I actually got done, posts to Slack so I can scroll back through a week without re-reading transcripts.

Creator Analytics Pipeline

Weekly digest pulling YouTube, Gumroad, Patreon, and Brevo into one Slack message. Five-minute Sunday read instead of five tabs.

Budget Tracker

Local YNAB replacement. FastAPI plus SQLite, paste-from-spreadsheet import, single Waterfront account. Lives on Tailscale, no auth needed.

Deep Gap Weather

Single-screen weather web app for the kitchen iPad mini (the old A1599, stuck on iOS 12). Open-Meteo plus NWS, plain ES5.

Remind

"Remind me at X" in any Claude chat becomes a launchd plist that fires a Brevo email. The reminder shows up in my inbox at the right time. No third-party reminder app.

"ship it" workflow

One command in Claude Code fetches unshipped orders from eBay and Reverb, applies my package presets, finds the cheapest USPS rate, hands me the label PDF.

listing-images

Tiny GitHub repo that doubles as an image CDN for Reverb listings (Reverb's API can add photos but not delete, so hosted URLs save a lot of cleanup).

Key Finder Pro

Audio analyzer that detects the musical key, BPM, and chords from a track. Web app today, native macOS port planned.

Biblical Greek Flashcards

Personal flashcard system for Koine Greek. Started with the words occurring 500+ times in the New Testament, expanded down to lower-frequency decks. Erasmian pronunciation. Daily review on the iPad.

Velocity

Three months,
from the top

Every milestone below is a real git commit, not a marketing date. The cadence is the point: one shipped thing per week, more or less, since February.

Biblical Greek FlashcardsFirst project. A Koine Greek deck for the words occurring 500+ times in the New Testament.
First commit on justinjoe.comThe site starts as a placeholder.
First contribution to SchwungA transient-detecting Sample Slicer module.
Plaits port for SchwungFirst module I built from scratch. Vendoring Mutable Instruments code into the framework.
Sample Slicer and TidalFX modulesSlicer gets its own repo. TidalFX design doc lands.
Tides CC moduleFour-lane modulation source, no JS UI, fully native hierarchy.
JV-880 macro UI and Key Finder ProFirst contribution to someone else's Move module, plus a web-based key/BPM/chord detector with a macOS port on the roadmap.
MIDI Commander v1.0The first customer-facing release. CC engine, shift button, bank switching. First version I felt good selling.
Creator Analytics PipelineWeekly business metrics auto-summarized into Slack.
Deal MonitoreBay plus Reverb deal alerts. Pays for itself the first month.
schwung-sfz and listing-imagesPolyphonic SFZ player module and the listing-photo CDN.
Work Log AggregatorDaily Claude-session digests start landing in Slack.
Tempest PatchworksCategory-aware Tempest patch generator. Started as Tempest Commander.
Budget TrackerPersonal YNAB replacement. FastAPI plus SQLite, daily use on day one.

What I Work With

Tools and
surfaces

Most of this is stuff I learned by needing it. Order is roughly how often I touch it in a given week.

AI surfaces

Claude Code Claude API Anthropic SDK MCP (server & client) Prompt caching Hooks Slash commands Custom skills Sub-agents

Languages

Python TypeScript JavaScript C++ Max/MSP RNBO codebox Bash

Audio & DSP

RNBO sfizz Bungee time-stretch SFZ SysEx MIDI / NRPN Ableton Move (Takeover)

Web & infra

FastAPI Cloudflare Pages Cloudflare Workers Wrangler launchd SQLite Node.js Tailscale

Integrations

eBay API Reverb API Shippo Gumroad Patreon Brevo YouTube Data API Slack Gmail Google Drive GitHub

Contact

Get in
touch

Always happy to talk to people making things. Most of my best collaborations have started with someone sending a short email about a problem they couldn't quite solve. If that's you, the inbox is open.

Open to: paid work on AI workflows or music tooling, sound-design or production projects, sample-pack and preset commissions, and the occasional "can you take a look at this synth I'm porting" conversation.

Email me GitHub YouTube