I build interfaces that stay fast when the data gets messy — dashboards with thousands of rows, filters that need to feel instant, and tools people rely on every day.
Right now, I'm building vibenglish.app end to end — English for Russian speakers, a few minutes a day: FSRS-scheduled vocabulary review, grammar A1–B2, a level test, short stories and speaking practice, plus groups that teachers share by link. On the side I make small, local-first tools for working alongside AI coding agents.
Main stack: TypeScript · Vue · Nuxt · Next.js · Node.js · PostgreSQL · Swift (macOS / iOS)
Also working with: Prisma · Tailwind CSS · Vite · Vitest · Playwright · Astro
Products
- vibenglish.app — English in short daily trainings, built around the words you already know
Open source
- rowkit — Vue 3 component library for data-dense interfaces: tables, filters and the states around them (npm)
- nomnomtokens — a local-first dashboard for what your AI coding agent eats: Claude Code spend, per-project cost, limit forecasts (npm)
- canvas-deck — an infinite macOS canvas where Claude Code agents, their terminals, previews and tasks live side by side
- island — EN↔RU translator in the MacBook notch, fully on-device


