Projects 📁

A living shelf of side projects — small apps, concepts, and playful prototypes.

Built to learn, shipped to share. Some are polished, others are still baking.

Steno

Status: Active

Your Telegram and WhatsApp conversations, connected to your AI agents — read-only, over MCP, on a machine you control. Self-host it, or use the hosted Steno Chat.

Stack: Next.js, MCP, mtcute, Baileys, SQLite, Drizzle, WebAuthn

PointsPal

Status: Building

A knowledge pipeline that turns Hong Kong credit-card and loyalty offers into structured, human-reviewed data, then serves it so an agent can name the best card to use at the point of spend.

Stack: Hono, React, SQLite, Claude, Clerk, Baileys, Fly.io

BreakGlass

Status: Shipped

A tiny, client-only recovery UI to transfer assets out of embedded MPC wallets (Privy) when your product is missing a "withdraw" flow.

Stack: React, TypeScript, Vite, Privy, viem

Courtline

Status: Shipped

NBA predictions on Polymarket for Web2 users: live games + quick calls with embedded wallets and a sports-first UX.

Stack: Next.js, Privy, Supabase, Upstash, Polymarket CLOB

Issuance Portal

Status: Shipped

A route-based credential issuance portal built on AIR Kit, supporting wallet auth, AIR Kit sessions, and OAuth flows (Spotify, X, Discord, etc.).

Stack: Next.js, AIR Kit, RainbowKit, wagmi/viem, OAuth

ClawdTM

Status: Archived

Skill directory inspired by Pokémon TMs — teaching AI assistants new skills and capabilities through modular integrations.

Stack: TypeScript, AI Skills

Red Packet

Status: Archived

On-chain red packets using zero-knowledge proofs: create, share, and claim crypto gifts with passcode-protected privacy.

Stack: Solidity, Circom, Hardhat, zk-SNARKs

SnapComp

Status: Archived

Mobile-first Pokémon card price comps: scan a card and pull pricing across marketplaces, with AI-assisted identification.

Stack: Next.js, Prisma, Postgres, OpenRouter, Inngest, Tailwind