Demo Library

Things I shipped, on a shelf.

Every one of these runs. Open a book to watch the recording and read what it actually does.

Shipped

Products that run today.

News Curator

Shipped August 2026

A news site that rebuilds itself hourly around whatever topics you feed it.

Write your keywords down once. A static page keeps itself up to date with the latest things published about them, most worthwhile first.

No account, no application server. A scheduled GitHub Action fetches, filters, ranks and renders static files for GitHub Pages every hour.

Saved interests live in Supabase and become ranking scores at build time, so the published site never carries the saved terms or the owner identity.

  • static site
  • GitHub Actions
  • Supabase

Sponsor Ops

Shipped August 2026

The sponsorship platform behind a 200,000-reader newsletter business, storefront booking to admin Mission Control.

Sponsorship inventory used to be sold and delivered by hand out of a Notion database. This replaced it with a public booking storefront and an internal operations console.

It went to production with four staff admins on it. The repository is the write-up, not the product: the reasoning, plus four design patterns rebuilt as standalone, tested, runnable illustrations.

  • case study
  • Stripe
  • operations console

This demo has narration.

Idea Companion

Shipped June 2026

Ask a topic by voice on a walk. A finished Notion learning page is waiting when you get back.

Open the Telegram Mini App and ask a topic out loud. The realtime tutor teaches the basics hands-free, in English or Chinese.

Ask for a report by voice. The conversation is saved to Notion and a Modal worker fills the page with a teaching workspace: summary, concept cards, glossary, practice loop, quiz questions, citations.

Telegram pings you when the page is ready. The product is the loop from voice capture to Notion memory to finished learning artifact.

  • voice
  • Telegram Mini App
  • Notion
  • Modal

This demo has narration.

Spend Detector

Shipped June 2026

Snap a receipt in Telegram. Every line item lands in Notion, with the price-over-time chart no bank can show.

Photograph a receipt in Telegram. The cloud reads every line item and writes it to a Notion database.

Notion draws the spending charts, including the one no bank can show: each item's price over time.

The bot replies with one useful insight and a tap-through Notion link.

  • Telegram bot
  • GPT-4o vision
  • Notion
  • Modal

Little Games

Small games played with AI players or with friends.

Caption Wars

Shipped September 2026

One photo drops. Everyone captions it. Everyone votes.

Phone-friendly party game. Humans and AI bots play in the same round: a photo drops, everyone writes a caption, everyone votes, funniest one wins. No accounts, no ads, no tracking.

Any AI coding agent can join a room from a terminal over the same HTTP API the browser uses, and pick which model drives it.

One Cloudflare Worker per game, a Durable Object per room, OpenAI models for the AI players with Workers AI as the fallback.

  • party game
  • Cloudflare Workers
  • AI players

Bilingual Vocab Game Generator

Shipped September 2026

A teacher pastes a Chinese vocabulary list and the games are ready to play.

A teacher pastes a Chinese vocabulary list in whatever shape she has it: a tab-separated export, a comma-separated line, a whole paragraph, a Google Sheets link, or a photo of the board. The app fills in pinyin and an English gloss where they are missing, she reviews and edits, and the games are ready to play. Shareable links, no accounts, no ads, no tracking.

The language model never writes game code. The games are fixed, hand-written templates, and the only thing a model ever does is propose an English gloss for a word the dictionary did not know. English glosses come from a 125,025-entry offline CC-CEDICT asset first, so most classroom vocabulary is answered instantly, offline, for zero AI spend.

A whole class plays on one four-letter code: students join by name, the teacher picks a game, and a shared board shows the live ranking. One Cloudflare Worker serves both the client and the API, with a Durable Object per room.

  • classroom game
  • Cloudflare Workers
  • CC-CEDICT
  • Workers AI