Projects

What I build, why, and what doesn't work yet. The limitations sections are honest.

Reframed

shipped

Helps people describe their experience honestly and still get the job. Live at reframed.works.

Next.jsTypeScriptAnthropicNeon PostgresUpstash RedisStripeReact PDF

ForgeFrame

active

Open-source memory for AI agents. Memories decay over time. Principles don't. You decide which is which.

repo
TypeScriptNode.jsMCP ProtocolSQLiteFTS5OllamaWebGL2

Guardian

active

Desktop control plane for local inference. Reframe detection, pattern tracking, encrypted notes. Built for environments where data stays on the machine.

repo
ElectronReactNode.jsSQLite/FTS5Zustandxterm.js

Distillery

active

Share a link from your phone. Your laptop reads it through your own recorded principles and tells you what resonates.

PythonFlaskOllamayt-dlpSQLiteiOS ShortcutsTailscale

StrudelVision

active

A Saturday night that kept going. Music visualizer with four WebGL shader modes, a Strudel REPL, a synth pad, a DJ mixer, and a TouchDesigner bridge — all in one index.html. Kinda works.

WebGL2Canvas2DWeb Audio APIStrudelOllamaWeb Speech APIWebSocketVanilla JS

Cipher

concept

Financial monitoring agent. Scores news against your investment thesis. Calls you if something matters.

PythonForgeFrameTwilioRSSLLM Scoring

Micro

Small tools. Single-purpose. No ceremony.

Voice Widget

shipped

On-device transcription. Click lips, speak, text on clipboard. Audio never saved.

Swiftwhisper.cppmacOS

Resonance / Recursive Hall

shipped

Generative WebGL architecture — seeded procedural halls rendered as wireframe ink drawings

Three.jsWebGLCustom GLSL ShadersVanilla JS

Orellana Tools

shipped

Proposal app for a landscaping business. Verbal quotes were losing jobs. Now they have PDFs.

Next.jsSupabaseReact-PDFVercel