January 2026
microCMS How
Bilingual (EN/JA) news and articles on a flexible content-block system (rich text, image, gallery, profile cards, logo groups), with several contact-form patterns (simple, multi-step, dynamic fields) validated with Zod and vee-validate. Caching is layered — Nitro's server cache plus Vercel's CDN — with a signed microCMS webhook that invalidates the cache on publish/update/delete, so new content shows up fast without spiking API calls or losing the caching benefit.
A production-shaped Nuxt 4 + microCMS content site.
A production-shaped Nuxt 4 + microCMS content site.
Bilingual (EN/JA) news and articles on a flexible content-block system (rich text, image, gallery, profile cards, logo groups), with several contact-form patterns (simple, multi-step, dynamic fields) validated with Zod and vee-validate. Caching is layered — Nitro's server cache plus Vercel's CDN — with a signed microCMS webhook that invalidates the cache on publish/update/delete, so new content shows up fast without spiking API calls or losing the caching benefit.
- Nitro cache + Vercel CDN + signed microCMS webhook invalidation — fast content updates, no API-call spikes
- Flexible content-block system: rich text, image, gallery, profile card, logo group
- Bilingual (EN/JA) throughout, via @nuxtjs/i18n
- Three contact-form patterns (simple, multi-step, dynamic fields), validated with Zod + vee-validate
- Includes an internal client-prototype flow (anv-proto): login/session, categorized content ingestion, and submission
More projects
view all →
Yubinbango Demo
A Nuxt 3 demo of Japanese postal-code auto-fill patterns (yubin bango 郵便番号 + auto-kana), deployed to Cloudflare Workers via Wrangler with GitHub Actions auto-deploy on push to main.

Mukawa AR Trail
A web AR trail built as a study for the Mukawa dinosaur story. Eight printed boards hang around a building, each with a picture and a QR. The QR only opens a link, so the phone's own camera does the scanning; the app asks for the camera when the visitor taps, recognises the picture itself as an image target, and stands the creature on the board as you move. Every board found unlocks its creature in a collection saved on the phone, with no sign-up. Built end to end by me: the trail app, the image targets, the printed panels and the deploy.
Kaeru Plugins
Two independent Claude Code plugins from one marketplace: kaeru lets non-technical staff safely edit a website's text, images, and colors in their own language and submit a PR for review — git stays hidden, it never merges; octo is the developer-facing GitHub + CI/CD toolkit — repo bootstrap, the issue → PR → merge flow, CI checks, and releases. The name folds in three meanings at once: 変える (change/edit), 帰る (return — a PR coming back for review), and 蛙 (frog — the mascot) — chosen so non-technical staff hear "Kaeru shite!" as friendly, not technical.