← Back

Projects

Things I've built — mostly to learn, sometimes to ship.

Clip Finder

Live· Case study →

AI-powered YouTube highlight detector. Drop a URL, get the 5-7 most shareable moments with timestamps, suggested captions, and platform recommendations (TikTok, LinkedIn, Twitter). Built in one overnight session.

Next.jsAnthropic ClaudeYouTube Transcript APITypeScript
Read case study

Interview Prep AI

Live· Case study →

Paste a job description, get 12-15 tailored interview questions and ideal answers in your own voice. Categories: behavioral, technical, situational, culture fit, role-specific. Powered by Claude Opus.

Next.jsAnthropic Claude OpusStreamingTypeScript
Read case study

Snow Forecast

Live· Case study →

Real-time snow conditions and scoring for 50+ ski resorts across North America. Rates mountains out of 10 based on fresh snow, snowpack, bluebird conditions, temperature, wind, and visibility. Features an adventure meter for Vancouver's North Shore mountains.

Next.jsTypeScriptOpen-Meteo APIFramer Motion
Read case study

beef

Live· Case study →

A mobile-first workout tracker built for strength & conditioning. Log sets, track progressive overload, and view exercise progress. Features an AI coach with e1RM tracking, post-workout analysis, personal records board, and Strava integration.

Next.jsSupabaseTypeScriptSports ScienceTailwind CSS
Read case study

TrainingLoad

Live· Case study →

Sports science training load monitor with ACWR gauge, readiness scoring (sleep, soreness, stress, energy, mood), 40+ exercise presets with HR zone tracking, and evidence-based training recommendations. Features RPE distributions, monotony/strain trends, and load-vs-readiness correlation analysis.

Next.jsTypeScriptSports ScienceRechartsData Viz
Read case study

FinanceFlow

Live· Case study →

Personal finance dashboard with budgeting, savings goals, loan tracking, and AI insights. Imports real bank statement CSVs with pattern-based categorization. Features net worth forecasts, subscription detection, a full transaction ledger, live market tickers, and multi-currency support.

Next.jsTypeScriptRechartsClaude APISupabase
Read case study

Job Tracker + AI Tools

Live· Case study →

A full-featured job application pipeline with Kanban board, timeline tracking, and three Claude-powered tools — cover letter generator with streaming, job fit analyzer with visual score ring, and tailored interview prep. Built for the job search that funded its own development.

Next.jsClaude APITypeScriptTailwind CSSSSE Streaming
Read case study

Code Explainer

Live· Case study →

AI-powered code learning tool with line-by-line annotations, concept tracking with confidence progression, learning stats dashboard with GitHub-style streak calendar, and analysis history. Supports 10 languages. Turns vibe-coding into deliberate learning.

Next.jsTypeScriptAIClaude APIRecharts
Read case study

NZ Real Estate Explorer

Live· Case study →

Interactive rental market data, suburb comparison, and yield calculator for New Zealand property. Combines MBIE Tenancy Services bond data with Stats NZ demographics. Features Mapbox map explorer, market dashboard with trend charts, side-by-side suburb comparison, and gross yield calculator.

Next.jsTypeScriptMapbox GL JSSupabasePostGISRecharts
Read case study

Adventures Abroad

Live

Travel blog and photo gallery documenting adventures around the world.

Next.jsTypeScriptTailwind CSS

Rep Sensor

Live· Case study →

Computer vision rep counter that runs entirely in the browser. Uses MediaPipe Pose Landmarker to track body landmarks and count reps for squats, push-ups, curls, and more. Zero data leaves the device.

Next.jsMediaPipeComputer VisionFramer MotionTypeScript
Read case study

Collab Whiteboard

Live· Case study →

Real-time collaborative whiteboard with freehand drawing, shapes, sticky notes, and live cursors. Multi-user sessions powered by Liveblocks. Works on desktop and touch devices.

Next.jsLiveblocksCanvas APITypeScriptReal-time
Read case study

Currency Converter

Live

Live currency conversion with multi-currency comparison, historical rate trends, and support for 30+ currencies. Fetches real-time exchange rates from open APIs.

Next.jsTypeScriptExchange Rate APIRecharts

Wellness Monitor

Live

Holistic wellness tracker combining sleep, stress, energy, and activity data. Features ACWR-based load monitoring, pattern detection, day-of-week analysis, and a weekly radar comparison report.

Next.jsTypeScriptRechartsSports ScienceData Viz

agentconf

Live

CLI tool for managing AI agent configuration files. Diff configs, apply presets, use git hooks to keep agent prompts in sync. 14 built-in presets for common agent personas.

Node.jsCLITypeScriptDeveloper ToolsAI

Deploy Pipeline

Live

One-command CLI to create a GitHub repo, add Vercel integration, and deploy a Next.js app. Automates the entire setup process from local project to live URL in seconds.

Node.jsCLIGitHub APIVercel APIDeveloper Tools

Durability Analyzer

Live· Case study →

Cycling endurance analysis built on published sports science research. Upload a Garmin FIT file to measure power durability — how well you sustain output as fatigue accumulates. Tiered scoring, multi-ride trends, decay curves across work bins. All client-side. Built by the researcher who published the methodology.

Next.jsTypeScriptGarmin FIT SDKSports ScienceRecharts
Read case study

AthleteIQ

Live· Case study →

Sports science AI chat backed by peer-reviewed research — including Harrison's published papers in EJAP. Streaming answers on durability, CTL/ATL/TSB, HRV, VO2max, periodization, and carbohydrate metabolism. Hand-crafted knowledge base for precision over RAG hallucination risk.

Next.jsAnthropic ClaudeSports ScienceRAG ArchitectureTypeScript
Read case study

DocIQ

Live· Case study →

Document intelligence demo — paste any document (contracts, research papers, product specs, reports) and ask questions in plain language. Get cited answers with exact quotes from the source. Privacy-first: documents are never stored on the server.

Next.jsAnthropic ClaudeDocument AITypeScriptStreaming
Read case study

NZ Adventure Planner

Live· Case study →

Real-time adventure scoring for New Zealand hiking tracks. Combines Open-Meteo weather forecasts with GeoNet seismic data to rate conditions out of 10. Interactive Mapbox map, track safety scoring, duration filters, and expandable condition breakdowns.

Next.jsTypeScriptMapbox GL JSOpen-MeteoGeoNet API
Read case study

Pipeline Demo

Live· Case study →

Multi-step LLM orchestration — visible. Drop in any document and watch a 4-stage AI pipeline run: Extract structured facts, Analyze risks and obligations, Synthesize an executive summary, Generate action items with owners and timelines. Each stage shows timing, token usage, and intermediate output.

Next.jsAnthropic ClaudeLLM OrchestrationTypeScriptTailwind v4
Read case study

Company Intelligence

Live· Case study →

AI-generated interview prep dossier. Enter a company name and role — get tech stack analysis, culture signals, smart questions to ask, red flags to investigate, and positioning advice. Useful prep in seconds, not hours.

Next.jsAnthropic ClaudeTypeScriptSSE Streaming
Read case study

Research Analyzer

Live· Case study →

Paste any research paper, abstract, or scientific text — get an instant structured breakdown. Plain English summary, key findings, methodology critique, limitations, practical applications, and follow-up questions. Built for scientists, students, and curious non-experts.

Next.jsAnthropic ClaudeFramer MotionTypeScript
Read case study

RAG Demo

Live· Case study →

Interactive Retrieval-Augmented Generation pipeline — no black boxes. Load documents, run a query, and watch BM25 score each chunk, see which were retrieved and why, then get a Claude Haiku answer with inline source citations. Every step is transparent.

Next.jsBM25Anthropic ClaudeTypeScriptRAG
Read case study

AI Code Reviewer

Live· Case study →

Paste any code, get a structured AI review in seconds: bugs, security vulnerabilities, performance issues, style suggestions — each with severity ratings and specific fixes. One-click generation of corrected code. Supports 12 languages.

Next.jsAnthropic ClaudeStructured OutputTypeScript
Read case study

AI Tool Use Demo

Live· Case study →

Watch the agentic loop live: the AI reasons about which tools to call, executes them, and synthesizes results — all visible in the UI. Five real tools: weather, calculator, web search, timezone lookup, currency conversion. Shows the core pattern behind every production AI agent.

Next.jsAnthropic ClaudeTool UseAgentsTypeScript
Read case study

Contract Analyzer

Live· Case study →

Paste any contract — employment agreement, NDA, SaaS terms, service agreement — and get an instant structured analysis: risk flags ranked by severity, plain-English summary of what you're agreeing to, key obligations by party, and specific negotiation leverage points.

Next.jsAnthropic ClaudeStructured OutputTypeScriptLegal Tech
Read case study

Legal Matter AI Workflow

Live· Case study →

3-stage autonomous AI pipeline for legal matter processing. Paste any matter description and watch: Stage 1 extracts structured data (parties, issues, urgency), Stage 2 streams 3 strategic investigation angles, Stage 3 generates a client update, billing narrative, and risk assessment — all in parallel.

Next.jsAnthropic ClaudeStreamingLegal TechMulti-stage PipelineTypeScript
Read case study

Research Canvas

Live· Case study →

Autonomous multi-step AI research agent. Enter any topic, and the agent plans a structured research agenda, researches each section in sequence with SSE streaming, and compiles a formatted report — all visible in real time. Shows the plan → execute → compile agentic workflow.

Next.jsAnthropic ClaudeAgentic AISSE StreamingTypeScript
Read case study

MCP Server Live Demo

Live· Case study →

The Model Context Protocol, visualized in real time. Two-panel layout: chat on the left, live JSON-RPC protocol trace on the right. Watch Claude discover tools, call them with typed parameters, receive results, and synthesize responses — every protocol message visible as it happens.

Next.jsAnthropic ClaudeMCPTypeScriptProtocol Visualization
Read case study

Harrison MCP Server

Live· Case study →

A real, working MCP server — not a simulation. Built with the official @modelcontextprotocol/sdk via stdio transport. Install in Claude Desktop with one config line and ask Claude about Harrison's portfolio, research, projects, and job search. 6 tools with Zod-validated schemas.

MCPNode.jsTypeScriptClaude Desktopstdio transportProtocol
Read case study

Claude Model Face-Off

Live· Case study →

Real-time streaming comparison of Claude Haiku vs Sonnet, side by side. Enter a prompt, watch both models stream simultaneously. Shows TTFT, tokens/second, and total time. Makes model tradeoffs visceral instead of theoretical.

Next.jsAnthropic ClaudeStreamingTypeScriptSSE
Read case study

LegalFlow

Live· Case study →

Three AI workflows for legal practice: matter activity → client update emails, time entries → billing narratives, court documents → structured calendar events. Built to show what 'AI workflows, not AI features' looks like in the legal domain.

Next.jsAnthropic ClaudeLegal TechTypeScriptAI Workflows
Read case study

AI Eval Lab

Live· Case study →

Systematic LLM prompt evaluation tool. Define a prompt template with variables, add test cases with expected outputs, run them all against Claude, and get scored results with a 'Fix My Prompt' AI assistant that streams improvement suggestions based on failures.

Next.jsClaude APITypeScriptTailwind CSSSSE Streaming
Read case study

Prompt Lab

Live· Case study →

Side-by-side comparison of four prompting techniques — zero-shot, few-shot, chain-of-thought, system-prompt tuning — all streaming simultaneously on the same question. Shows TTFT, token counts, and quality differences in real time. Temperature slider and model selector included.

Next.jsAnthropic ClaudeSSE StreamingTypeScriptPrompt Engineering
Read case study

Multi-Agent Demo

Live· Case study →

Live, visible multi-agent coordination system: user gives a task → Planner decomposes into subtasks → three Specialist agents (Researcher, Writer, Critic) execute in parallel → Synthesizer assembles the final output. All five agents stream in real time. Shows what production AI orchestration looks like.

Next.jsAnthropic ClaudeMulti-AgentSSE StreamingTypeScriptAI Architecture
Read case study

Voice AI Demo

Live· Case study →

Real-time voice AI assistant in the browser. Speak → Claude hears → Claude responds → Claude speaks back. Under 1 second from end of speech to start of audio response. Built using browser-native Web Speech APIs — no Deepgram, no Whisper, zero external audio dependencies.

AIVoiceWeb Speech APIStreamingBrowser APIsClaudeNext.js
Read case study

Context Engineering Studio

Live· Case study →

Six context strategies applied to the same task, streaming in parallel. Baseline, Role+Persona, Grounding, Few-Shot, Constraints, Full Stack — all fire simultaneously. Watch quality emerge from context engineering in real time. Based on Andrej Karpathy's 'context engineering' framework — the discipline replacing 'prompt engineering' in production AI.

Next.jsAnthropic ClaudeContext EngineeringSSE StreamingTypeScriptAI ArchitectureParallel Requests
Read case study

Agent Memory Demo

Live· Case study →

An AI that actually remembers you. Chat on the left, live memory graph on the right. Every message: Claude responds using injected memory, while a parallel lightweight call extracts new facts and adds them to the store. Memory persists across sessions. Makes the extract-store-inject architecture that powers production AI memory tangible and interactive.

Next.jsAnthropic ClaudeAI MemorySSE StreamingTypeScriptAI ArchitectureAgent Design
Read case study