Work

Selected shipped work, client work, and labs. Status matters.

Drew Garman builds practical AI software and websites. Key projects include DBNT, an open-source Python protocol for AI feedback loops (available on PyPI), and Borussia Minerals, a client e-commerce site for premium mineral specimens.

Borussia Minerals

live

Client: Boris Dimov

Client delivery: e-commerce + 3D Gaussian-splat viewer + Stripe

Challenge

A premium mineral specimen dealer needed a professional web presence that matched the quality of Arizona's Fat Jack Mine specimens — including a way to show off 3D point-cloud captures in the browser.

Solution

Designed and shipped a full-stack e-commerce site with a custom 3D Gaussian-splat viewer, Stripe checkout, and responsive museum-quality UI. Built and deployed solo, end-to-end, for a paying client.

Result

Live at borussiaminerals.com. Real paying client, production Stripe, 3D splat viewer running in-browser. Demonstrates client delivery ownership: spec, design, build, deploy, maintain.

Next.jsReactTailwind CSSTypeScriptStripe3D Gaussian SplatVercel

Family Recipe Box

live

Full-stack product with real users — auth, multi-tenancy, email, AI transcription

Challenge

Build a multi-family recipe platform that's genuinely private (each family sees only their recipes), handles real-world auth edge cases, and works on mobile.

Solution

Full-stack Next.js app with PostgreSQL, per-family tenancy, Firebase keyless broker + Better-Auth sessions, magic-link email via Resend, and a Mama-node AI transcription worker for scanning handwritten cards.

Result

Real users in production. Caught and fixed a hairy production bug: ISP scanners (cox.net) were pre-fetching the magic-link URL and burning the token before the user clicked. Fixed with a POST-gated confirm interstitial. This is the kind of debugging FDE work is made of.

Next.jsPostgreSQLFirebase AuthTypeScriptResendAI TranscriptionRender

Abledumb

live

AI-assisted music workstation with a local-first router

Challenge

Most music tools either bury producers in menus or try to replace them entirely. Build a workstation where the artist stays in control and AI helps with the boring or blocked parts.

Solution

AI-assisted media editor with local model routing through Ollama and LM Studio when the task allows it, plus cloud APIs only where frontier capability is actually needed.

Result

Live at abledumb.com. Demonstrates the product principle I keep coming back to: AI should accelerate the producer without taking ownership of the track. CSP was hardened from report-only to enforcing after live-traffic review.

TypeScriptReactElectronOllamaLM StudioWebAudio APIVite

GUS — 4-Node Local AI Fleet

live

Local-first AI infrastructure for routing, governance, and agent work

Challenge

Running every AI task through a cloud API is expensive, brittle, and wrong for sensitive work. I needed a way to route routine tasks locally and save cloud models for the jobs that need them.

Solution

Designed and operate a 4-node Apple Silicon AI fleet (GUS boss node + Mama compute drone + DJ worker + DRU workstation) with local/cloud routing and a runtime governance layer enforced by hook scripts.

Result

This is the infrastructure layer I use to test local routing, agent handoffs, and governance before turning them into product or client work. It is lab infrastructure, not a finished product claim.

PythonTypeScriptOllamaMulti-Agent OrchestrationApple SiliconLocal LLMsRuntime Governance

DBNT — Do Better Next Time

live

Open-source AI feedback protocol — published on PyPI

Challenge

AI agents repeat the same mistakes across sessions. Traditional error logging captures what failed but not why — and success patterns are ignored entirely.

Solution

Open-source Python protocol encoding both success and failure patterns with weighted signals (success 1.5x over failure), FSRS spaced-repetition decay, and pluggable adapters for any AI framework.

Result

84 tests, zero external dependencies, pip-installable. Published on PyPI. Demonstrates systems thinking about AI improvement loops.

PythonFSRSCLIOpen SourcePyPI