A client-side issue tracker wrapped in a high-craft landing page — Linear-inspired, pure black-and-white, zero backend.
Mono is a fully functional single-page productivity tool: marketing surface on the left, live issue tracker on the right. Issues support create, edit, status, priority, assignee, filters, keyboard navigation, and localStorage persistence — no frameworks, no server.
Semantic HTML, CSS custom properties, Grid/Flex, and vanilla JS modules of behavior. Keyboard-first interactions (N, arrows, Enter, Esc). Toast feedback on every meaningful action. Design constrained to pure monochrome for clarity.
HTML · CSS · Vanilla JavaScript · localStorage
Cursor, ChatGPT, Grok, and Claude for layout options, copy, and refactor suggestions. Keyboard flows, localStorage model, and final monochrome UI decided and verified by hand.
A calm infinite whiteboard for thinking and diagramming — built from scratch with no frameworks.
Lumen is a browser diagramming tool: infinite canvas, freehand pen, shapes, text, multi-select, resize, undo/redo, command bar, dark/light themes, and PNG/JSON export. Modular architecture with a dedicated canvas engine and history stack.
Engine owns camera, elements, selection, and rAF render loop. Elements are plain classes with draw/toJSON/bounds. History stores full snapshots. Tools driven by pointer state machine. Design tokens for light/dark first-class themes.
HTML · CSS · Vanilla JavaScript (ES modules) · Canvas 2D
Cursor, ChatGPT, Grok, and Claude for engine structure and command-bar patterns. Canvas rendering, history, and pointer tools implemented and stress-tested manually.
A spatial, temporal, and relational knowledge environment — not a notes app, a living network of ideas.
Aether models ideas as atomic units with blocks, tags, versions, and activity. Typed backlinks, four focus modes (List, Graph, Canvas, Timeline), command palette, knowledge queries, local-first persistence, and installable PWA.
React + TypeScript + Vite with a monochrome design system. Keyboard control throughout. Accessibility: skip link, ARIA, focus-visible, reduced-motion, high-contrast. Architecture kept lean for future TipTap/Dexie/sync layers.
React · TypeScript · Vite · PWA
Cursor, ChatGPT, Grok, and Claude for React/TypeScript scaffolding and mode ideas. Graph, backlinks, and PWA behavior designed and validated in the running product.
A browser coding game where every level is a corrupted mental process — rewrite real JavaScript in Monaco and watch the infection respond.
Players open a real Monaco editor, rewrite JS that represents a mental process, and see the infection weaken or mutate based on code quality. Includes focus tracking, minimum focus windows, infection leakage across levels, and permanent resistance.
Next.js App Router, clinical dark UI, Zustand for persisted progress, Web Worker sandbox for safe eval, Framer Motion for system feedback. Eight levels from infinite scroll loops to deep-work collapse.
Next.js 15 · TypeScript · Tailwind · Monaco · Zustand · Framer Motion · Web Workers
Cursor, GitHub Copilot, ChatGPT, Grok, and Claude for level content and game-loop drafts. Monaco integration, worker sandbox, and infection rules owned and reviewed by hand.
A terminal-inspired time boxing app for developers — structured focus blocks, session logging, and productivity without noisy UI.
Personal Timeboxing is a developer-oriented productivity tool for structured work blocks. Terminal-inspired UI keeps the focus on the session itself — start a box, stay in it, review the day.
Built with Next.js and a calm, high-contrast interface. Live at personal-timeboxing.vercel.app with the same minimal language as the rest of the toolset.
Next.js · TypeScript · React · CSS
Cursor, ChatGPT, Grok, and Claude for Next.js UI wiring and polish. Session rules and focus UX defined and checked without relying on generated product logic.