Projects

Things I’ve built end to end.

Most of it is ProseForge, the company I founded. The rest are smaller builds that each test one idea.

ProseForge

My company · Founder & principal engineer

ProseForge

Full-stack content automation platform powering proseforge.ai

Content creators need a streamlined way to research, ingest, and generate stories from multiple sources. ProseForge is a writing platform, not a content automation framework.

  • Built Go backend with Chi router, PostgreSQL, and River job queue
  • Integrated AI story generation via Ollama/RunPod
  • Created Vue.js frontend for content management
GoPostgreSQLVue.jsTypeScriptDockerTerraform
app.proseforge.com ↗

ProseForge iOS App

Native companion app for ProseForge on iOS

Users need native iOS access to browse and read ProseForge stories.

  • Built cross-platform app with .NET MAUI targeting iOS, Android, macOS
  • Generated type-safe API client via NSwag/OpenAPI
  • Implemented MVVM architecture with dependency injection
.NET MAUIC#XAMLOpenAPI
apps.apple.com ↗

ProseForge Android App

Native companion app for ProseForge on Android

Users need native Android access to browse and read ProseForge stories.

  • Built cross-platform app with .NET MAUI targeting iOS, Android, macOS
  • Generated type-safe API client via NSwag/OpenAPI
  • Implemented MVVM architecture with dependency injection
.NET MAUIC#XAMLOpenAPI
play.google.com ↗

ProseForge Workbench

BYOAI client that lets any AI agent act as an author or reviewer on ProseForge

AI agents need a structured way to read, review, and improve stories on ProseForge without hand-rolling HTTP calls for every workflow.

  • Built Go CLI and MCP server sharing a common service layer
  • Generated typed API client from the ProseForge OpenAPI spec via oapi-codegen
  • Released cross-platform binaries (darwin/linux × amd64/arm64) via GoReleaser
GoMCPOpenAPIoapi-codegenCobraGoReleaser
github.com ↗

ProseForge TTS Worker

Pure-Go serverless TTS worker powering ProseForge audiobook narration

Narrating story audiobooks at scale needs a TTS pipeline that's fast, cheap, and doesn't drag a Python runtime into every deploy.

  • Ported Kokoro-82M ONNX inference to pure Go — no Python dependency
  • Built context-aware homograph disambiguation with Misaki dictionaries and Flite LTS fallback
  • Deployed as RunPod serverless with zero cold-start and WAV/MP3 output
GoONNX RuntimeKokoro-82MRunPodFFmpegDocker
github.com ↗

ProseForge Marketing Stack

Automated pipeline from markdown scripts to published YouTube videos

Creating narrated demo videos requires tedious manual audio sync and publishing.

  • Built MCP server for Claude Code integration
  • Automated TTS generation with macOS voice and Gemini API
  • Integrated FFmpeg for audio/video mixing with timing validation
PythonFFmpegMCPPlaywrightYouTube API
youtube.com ↗

Smaller builds

Blackjack

Full-stack game demonstrating C++ → C# → Vue.js interop

Demonstrate cross-language integration from low-level game engine to modern web UI.

  • Implemented core game logic in C++ with C ABI wrapper
  • Built ASP.NET Minimal API for game server
  • Created Vue.js frontend with multiple card themes
C++C#ASP.NETVue.jsDockerNginx
blackjack.claytonharbour.com ↗

Drop Jockey

Clean-architecture game with swappable AI players including LLM support

Build a Connect-4 game with pluggable AI agents and clean architecture.

  • Designed pure game engine with zero runtime dependencies
  • Created pluggable player system (Human, Random, Heuristic, LLM)
  • Built dual renderers: React web UI and terminal curses interface
TypeScriptReactViteVitestPlaywrightOllama
connect4.claytonharbour.com ↗

CryptoWatch

Real-time cryptocurrency tracking platform with integrated monitoring

Track cryptocurrency prices and market data in real-time.

  • Built C# web application with MCP codegen tooling
  • Integrated Grafana monitoring system for observability
  • Implemented load testing with documented performance results
  • Created self-documenting workflow using Puppeteer
C#ASP.NETGrafanaPuppeteerDocker
crypto.claytonharbour.com ↗