Projects

Most of these started as a fix for something broken.

QA automation and personal tooling.

01
QA Workflow Automation Toolkit
2023–present
Config-driven Playwright framework + 14 scripts. Documentation overhead from ~4 hrs/wk to under an hour.
The hard part was the platform: no staging, 350+ form fields generated at runtime, label names that change whenever the vendor pushes an update. I built a Playwright harness where field mappings live in config files. When labels shift, I update config instead of rewriting tests. When that's still not enough, a Claude API layer does fuzzy selector matching.
The 14 scripts came separately. Each one started with a manual process I got tired of doing: video capture for HIPAA audit evidence, Jira release summaries from ticket metadata, audio transcription, interactive HTML checklists, daily QA digests, 63-section form autofill. Two and a half years at Chorus, accumulated one annoyance at a time.
TypeScript Node.js Claude API Gemini API JavaScript
The public repo has 5 of the 14 scripts. The rest touch PHI-adjacent workflows or internal Jira structure that can't be extracted cleanly.
github.com/snackdriven/qa-toolkit →
02
Jira Local
2025
5 views (board/list/tree/detail/calendar), custom sorting, full keyboard navigation, none of it touching the shared board.
Holiday break, backlog of piled-up tickets, most of them queued for release within a day or two of getting back. JIRA's default view wasn't cutting it. The ticket names didn't have the context I needed to sort them at a glance, and I couldn't reorder things without changing the actual board, which would mess with everyone else's setup. Built a local wrapper instead. Changes stay local.
React 18 TypeScript Vite TanStack Query
github.com/snackdriven/jira-local →
03
chronicle
2025
MCP server giving Claude access to a personal decision timeline across sessions
I kept re-explaining the same context to Claude. Not what I decided, but why, and what was happening at the time. New session or different machine, same result: gone. Chronicle is an MCP server with a SQLite backend that stores the timeline and surfaces it on request, mid-conversation, as a live tool. Not a static file you paste in once. So the context follows me.
React TypeScript SQL MCP
github.com/snackdriven/chronicle →
04
nibble
2026
Zero-dependency task and event planner with cross-device sync, ADHD-friendly hierarchy, and Catppuccin Mocha
Three files, no build step, no npm. Tasks have three time states (due-by, open, recurring), subtasks, dependencies, and an activation date that controls when something surfaces. The ADHD angle is deliberate. Blocked status comes from unfinished dependencies, not something you toggle manually. The app figures out what you can do right now. Optional Supabase sync.
Vanilla JS CSS Supabase
snackdriven.github.io/nibble →