Building small, opinionated software. Some of it you can read; the products are private while they are pre-revenue.
motion-kit — nineteen dependency-free motion effects, vanilla CSS+JS and plain React, on one shared duration/easing token system. No build step to view the gallery. Stack: JavaScript, CSS, React
since-clock — a live reading of elapsed time since a fixed instant. Every frame computed from the epoch, never incremented, so there is no drift and no catch-up after a hidden tab. One JS file, one CSS file, no dependencies, no build step. Stack: JavaScript, CSS
perch — a floating always-on-top scratchpad for macOS you dictate into while reading something else. Not another transcriber; it fills the gap insert-at-cursor tools leave. Stack: Swift, SwiftUI, SwiftPM
claude-skills — custom Claude Code skills for directing AI-assisted design and build work: style and taste specs, redesign audits, image-to-code pipelines.
Khushin — personal site, the umbrella for this body of work. Live: https://khushin.com Stack: TypeScript, Cloudflare Workers, Wrangler, Playwright · CI/CD: GitHub Actions
Garden — local-first, encrypted personal finance web app. Manual entry and CSV/PDF statement import work with no account; optional opt-in bank-linking. Also ships as an iOS/Android app and a macOS desktop app from the same codebase. Stack: TypeScript, React 19, Vite, Cloudflare Workers, Capacitor (iOS/Android), Tauri v2 (macOS), Dexie, Playwright · CI/CD: GitHub Actions (staged rollout)
Kapers — native iOS app: capture a task in natural language, review it, approve it. Writes to Calendar and Reminders only after explicit approval. No backend, no network calls. Stack: Swift, SwiftUI, EventKit, SwiftPM
Overgrown Relay — hand-painted 2D asset pack for an overhead action RPG: characters, enemies, a boss, a full 128px environment kit, two playable maps. Assets and data only, no engine code. Stack: Python tooling, ComfyUI / PixelLab asset pipeline

