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. A few recordings are still coming; those books show a screenshot for now.

Teaching & learning

Classroom games, printables and tools for learning Chinese and English.

Writing Sheets

Shipped September 2026

Paste Chinese characters, print a stroke-order practice sheet.

An Avery Studio classroom tool for Mandarin immersion K-5. A teacher pastes characters (messy is fine), sees the practice sheet right away, and prints it.

Each character gets a row: the finished character in solid ink, the stroke build-up in gray with one more stroke per cell, the whole character in light gray to trace over, then empty cells to write it alone. Numbering, pinyin, English glosses and lesson headings are skipped, and Momo names whatever was skipped.

An AI agent gets the same printable sheet from one HTTP call. Stroke data comes from Make Me a Hanzi, fetched by the Cloudflare Worker and checked against a pinned manifest, so the browser never calls the CDN.

Source code is private. The recording above shows the project in use.

  • classroom tool
  • Cloudflare Workers
  • Make Me a Hanzi
  • agent API

Trace Race

Shipped September 2026

Kids race to trace Chinese characters stroke by stroke, in the right order.

An Avery Studio classroom game for Mandarin immersion K-5. The teacher pastes a character list, kids join on their phones, and everyone races to trace each character stroke by stroke, in the right order. The teacher's screen is a live race board for the classroom projector.

Correct strokes fill in with ink, a wrong stroke wiggles and shows the hint, and Momo, the Avery Studio mint puppy, cheers every finished character. Most characters finished wins, and nothing is ever taken away. No accounts, no ads, no tracking, no sound.

An AI agent races through the same HTTP API the phones use and shows on the board with an AI tag. One Cloudflare Worker, one Durable Object per room, and Hanzi Writer for the stroke checking.

Source code is private. The recording above shows the project in use.

  • classroom game
  • Cloudflare Workers
  • Durable Objects
  • Hanzi Writer

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. Two mole games came next: in Whack-a-Word a kid bops every mole holding the word shown at the top, and in Echo Moles the kid hears the word first, then bops the mole holding it.

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

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.

Source code is private. The recording above shows the project in use.

  • party game
  • Cloudflare Workers
  • AI players

Demo coming soon

The live-translate start page with its three translation directions.

Demo coming soon. This is a screenshot of the product.

Live Translate

Shipped October 2026

Live English and Chinese interpreting in one room. One device listens, the other person reads the translation on their phone.

One device, the host, listens with the browser's speech recognition in English or Chinese and shows a live transcript.

The other person opens a link or scans a QR code and reads the translation on their phone as you talk: English to Simplified Chinese, Chinese to English, or both ways.

The whole conversation downloads as a bilingual transcript. Plain Node with no runtime dependencies.

  • speech recognition
  • EN ⇄ 中文
  • Server-Sent Events
  • open source

Demo coming soon

The Avery Studio storefront: a Moon Festival story book product page with its price and Teachers Pay Teachers button.

Demo coming soon. This is a screenshot of the product.

Avery Studio Shop

Shipped October 2026

A storefront of bilingual classroom materials, stocked and run by agents.

Printable Chinese K-5 activities, games and crafts, sold from my own site. Product pages, covers and listings are produced with an agent pipeline, and the same pipeline uploads the listings to Teachers Pay Teachers.

Every printable links students back to the live classroom games, so a worksheet and a game board are the same product.

This is where the teaching tools stop being a library and start being a shop.

  • storefront
  • K-5 Chinese
  • agent pipeline

Online business tools

Tools that run or check part of an online business.

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

Demo coming soon

AI Shopping Check result: a score out of 100 and a checklist of fixes.

Demo coming soon. This is a screenshot of the product.

AI Shopping Check

Shipped October 2026

A free scan that shows whether AI shopping assistants can read a Shopify or WooCommerce store's products.

Paste a store address and get a score from 0 to 100, plus a checklist of Good, Could be better and Needs fixing items, each with why it matters and how to fix it.

Thirteen weighted checks read the store's robot rules, public product list, sitemap, llms.txt and up to three product pages for structured data: price, stock, barcode, brand, photo.

AI training bots are only ever a warning: blocking them is a fair business choice. The "we fix it for you" checkout runs in Stripe test mode only in the public code.

  • Shopify
  • WooCommerce
  • structured data
  • open source

News

News feeds, and the tools that watch what Chinese platforms delete.

Demo coming soon

The China News Feed with Deletion Watch listing on the Apify Store: title, actor id and description.

Demo coming soon. This is a screenshot of the product.

China Censorship Watch

Shipped October 2026

A paid China news feed on the Apify Store, built around a censorship watch: who said what, and what went missing.

A censorship watch snapshots the Weibo, Baidu, Zhihu, Toutiao and Bilibili hot lists and flags topics that vanish while hot: Censored only on hard evidence, Likely censored on medium evidence, Returned when a topic comes back. Every flag shows its evidence, and a failed fetch never counts as a deletion.

About 155 Chinese-language sources, each labeled by outlet type: state media, party-gov, commercial, overseas independent, dissident, censorship trackers. The same story from different outlet types shares one cluster, so the framings sit side by side.

Sold per thousand results on the Apify Store. Free samples and a companion MCP server are public on GitHub.

  • Apify Store
  • paid API
  • deletion watch
  • MCP server

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.

Source code is private. The recording above shows the project in use.

  • static site
  • GitHub Actions
  • Supabase

Demo coming soon

Censorship Diff Explorer with sample data: deleted posts per day as a bar chart.

Demo coming soon. This is a screenshot of the product.

Censorship Diff Explorer

Shipped October 2026

Compare daily snapshots of social media posts and see, day by day, which ones disappeared.

Collect snapshots of the posts you can see. The engine compares them in time order: a post present in one capture and missing from the next counts as deleted.

A bar per day, in Beijing time. Tap a day to read what vanished: the original Chinese text, an optional English translation, the account, and how long it stayed up.

Edits, re-posts, posts that come back and broken captures are told apart from deletions. The public repo ships with made-up sample data only, and the page says so.

  • snapshots
  • diff engine
  • sample data
  • open source

Agent systems

Agents that do a whole job end to end, and the framework that runs them.

This demo has narration.

IC Bot / 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.

Source code is private. The recording above shows the project in use.

  • 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.

Source code is private. The recording above shows the project in use.

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

Demo coming soon

A terminal: agent-north claims the morning supplier sweep and agent-south stands down.

Demo coming soon. This is a screenshot of the product.

Agent Ops Framework

Shipped August 2026

How my agent team runs: scheduled work that happens whether or not any one agent, model or vendor is awake.

A model-agnostic, agent-agnostic operating model for running a desk's recurring work with AI agents, plus a runnable reference implementation of every moving part.

Two clocks start each cycle, the first agent to answer claims it and the rest stand down. Output goes out under a human's name, and the desk learns from sent mail every week without retraining.

The domain in the repo is fictional (a small bakery's supplier desk). The architecture is the one behind a production desk run daily.

  • operating model
  • Python
  • GitHub Actions
  • open source