damiensmith.dev
11 projects

Projects

Libraries, experiments, and small apps I've built outside of work just for fun.

The Clance popup over a browser, explaining highlighted docs after reading the selection.

Clance

2026

Claude Code, one hotkey away, anywhere on your Mac. A menu-bar app that pops up the real Claude Code CLI over whatever you're doing, and has grown into my main dev app and agent manager.

ElectronTypeScriptMCPAccessibility APIwhisper.cpp

llm-cassette

2026

Record and replay OpenAI and Anthropic calls in tests. When you edit a prompt, a judge model decides whether the saved response still fits, so tests survive prompt changes.

TypeScriptVitestJestLLM-as-judge
The console's live view: messages on a deploys topic, each judged against two subscribers, with the match threshold drawn as a line.

semantic-pubsub

2026

Pub/sub that routes messages by what they mean. Subscribers describe their interests in plain language, and each message is judged once against all of them. Built as an experiment, with the results published.

GoRedisWebSocketsJevExperiments

go-ws-server

2026

A stateless WebSocket server in Go with Redis as its only coordination point: pub/sub topics with replay, topic locks, per-user broadcast and a distributed job scheduler.

GoRedisWebSocketsPrometheusDocker

jevfilter

2026

A Python library for judging content against plain-English topic definitions. Each topic comes back as a match, a review or a no, with the cost of every call attached.

PythonPyPIJev

jev-gmail-filter

2026

Filter Gmail with plain-English topics. It labels matching emails, groups them into tracked items like job applications, and flags anything that has gone quiet.

PythonFastAPIGmail APISQLiteJev
A draft prompt scored on five dimensions, with the gaps worth closing listed beside it as questions.

Prompt Tuner

2025 – 2026

Paste a draft prompt and get it graded on five dimensions, asked only for what's missing, and rewritten with notes on what changed.

ReactTypeScriptClaude APIVercelNeon

plainlog

2026

A small, predictable logger for Node and the browser, with explicit context, safe transports and first-class testability.

TypeScriptnpmLogging
The web dashboard: traffic, failure and crash controls, three simulated backends with CPU, memory, latency and error rate, and success rates for the scoring, random and round-robin strategies.

Load Balancer Playground

2025 – 2026

A small load balancer in front of simulated backends that slow down, fail and crash, with a live dashboard comparing random, round-robin and a scoring strategy.

TypeScriptNode.jsNetworking
The MP3 Compressor page: a drop zone for audio files, a target space saving slider at 50% (about 128 kbps), and a Compress All button.

MP3 Compressor

2026

A bulk audio compressor that runs entirely in your browser. No uploads, no account, no limits.

Next.jsTypeScriptffmpeg.wasmWebAssembly
Level 1 of Broken Calculator: a target of 50, a Show Hint button, and the calculator keypad.

Broken Calculator

2026

A puzzle game where the calculator doesn't work right. Figure out each level's hidden rule and reach the target number.

ReactTypeScriptGame