A learning community platform for schools, training organizations and associations.
React 18 · TypeScript · MUI · .NET 8 · SQL Server · Azure App Service · Azure Pipelines
A learning community platform for schools, training organizations and associations.
React 18 · TypeScript · MUI · .NET 8 · SQL Server · Azure App Service · Azure Pipelines

Linkr helps schools, training organizations and associations run learning programs, communities and credentials in one place, in English and French.
React 18 · TypeScript · MUI · .NET 8 · SQL Server · Azure App Service · Azure Pipelines
On-device AI speech-to-text for macOS: hold a shortcut, talk, and a local Qwen model types it where the cursor is.
Swift · SwiftUI · AppKit · MLX · Qwen3-ASR · WhisperKit · macOS

On-device AI speech-to-text for macOS: hold a shortcut, talk, and a local Qwen model types it where the cursor is.
Swift · SwiftUI · AppKit · MLX · Qwen3-ASR · WhisperKit · macOS
Time tracking and invoicing for Canadian freelancers, with an AI timesheet assistant.
Next.js 15 · TypeScript · Supabase Postgres · Stripe · Claude Haiku 4.5 (Anthropic API, tool use) · Vercel Git deploys

Drag a block onto the calendar, or tell the AI what you did, and HourTab fills the timesheet. One click turns the hours into an invoice with the right Canadian taxes.
Next.js 15 · TypeScript · Supabase Postgres · Stripe · Claude Haiku 4.5 (Anthropic API, tool use) · Vercel Git deploys
A live dashboard for a team of AI agents: who is working, on what, and who needs a person.
React 19 · TypeScript · Vite · Node.js (SSE) · Claude Code transcripts & subagents · Cursor cloud agents · Grok Bot feed · macOS LaunchAgent / Windows IIS · Azure DevOps API

A live board for a team of AI agents. Each row shows what an agent has been doing in the last ten minutes, and anything waiting on a person is flagged.
React 19 · TypeScript · Vite · Node.js (SSE) · Claude Code transcripts & subagents · Cursor cloud agents · Grok Bot feed · macOS LaunchAgent / Windows IIS · Azure DevOps API
A family dashboard on a Raspberry Pi kiosk, kept up to date by my Hermes AI agent, which scans school emails, calendars and invitations for events and reminders, next to live weather, markets and Habs scores.
Next.js 16 · React 19 · TypeScript · Hermes AI agent (Gmail + calendar scans, Git auto-updates) · Open-Meteo · NHL API · Node + Caddy on a Linux VPS · Raspberry Pi Chromium kiosk

A family dashboard on a Raspberry Pi kiosk, kept up to date by my Hermes AI agent, which scans school emails, calendars and invitations for events and reminders, next to live weather, markets and Habs scores.
Next.js 16 · React 19 · TypeScript · Hermes AI agent (Gmail + calendar scans, Git auto-updates) · Open-Meteo · NHL API · Node + Caddy on a Linux VPS · Raspberry Pi Chromium kiosk
Reusable Claude Code skills and interface mods, packaged as an installable plugin marketplace.
Claude Code plugins, skills & subagents · TypeScript/TSX · Claude Opus / Sonnet / Haiku · OpenAI Codex skills · MCP plugins · Bash · Python · Git-based plugin marketplace

Reusable skills, agents and interface mods for Claude Code, packaged as an installable plugin marketplace. They write proper Git commits, turn plans into checkable runbooks, split work across a team of cheaper and stronger models, and add live panels to Claude Code itself.
Claude Code plugins, skills & subagents · TypeScript/TSX · Claude Opus / Sonnet / Haiku · OpenAI Codex skills · MCP plugins · Bash · Python · Git-based plugin marketplace
A personal investment portfolio and budget tracker.
Next.js 16 · TypeScript · Supabase Postgres · Claude Haiku 4.5 vision (PDF statement parsing) · Anthropic SDK · Yahoo Finance · Vercel · GitHub Actions CI

A personal investment portfolio and budget tracker.
Next.js 16 · TypeScript · Supabase Postgres · Claude Haiku 4.5 vision (PDF statement parsing) · Anthropic SDK · Yahoo Finance · Vercel · GitHub Actions CI