Open Source
Tools I built, released for free, and keep maintaining: what each one does, why it exists, and how it has done since.
// 11 entries, in order
HotRulez: I created a free open-source Firebase Rules handling plugin for JetBrains IDEs // A JetBrains plugin that finally treats Firebase Security Rules as a real language: structural highlighting, formatting, diagnostics, and symbol intelligence for .rules files, no auth evaluation.
gcbad_dart: I open-sourced a strongly-typed Dart client for the GoCardless Bank Account Data API // A pure-Dart client that wraps the GoCardless Bank Account Data API v2 end to end: automatic token management, the requisition consent flow, and typed accounts, balances, and transactions, with every failure as one exception. On pub.dev under MIT.
MarkPad 0.11.0: I shipped YAML support in my lightweight local-first Markdown editor // MarkPad is a small Tauri 2 desktop editor with a live preview, and 0.11.0 makes YAML a third first-class document language next to Markdown and JSON: highlighting, validation, folding, and Format and Sort keys that go through a real document model so comments and anchors survive. Plus Mermaid and Graphviz diagrams and outside-edit detection.
vincent 0.4.0: richer workflows, a roomier TUI, and wider distribution // What changed since 0.1.0: reusable workflow control flow, usage-limit recovery, a responsive TUI, and WinGet, Scoop, mise, deb, and rpm distribution.
vincent 0.7.0: the control plane now runs its own development // What changed from vincent 0.4.0 through 0.7.0: agent-authored workflows, recovery tools, a scriptable control plane, richer task workspaces, and the point where vincent began carrying all of its own development.
HotRulez, my free Firebase Rules plugin, passed 1000 downloads on the JetBrains Marketplace // The free and open-source Firebase Security Rules plugin for JetBrains IDEs is on the Marketplace now and past a thousand downloads, in a corner of the ecosystem where every other option costs money.
vincent 0.8.0: resolving one issue as a DAG of parallel agent lanes // Why a dependency graph of work units spends less wall-clock than one long agent session, what vincent 0.8.0 added to make that runnable, and what the real runs cost.
LangGraph vs vincent: generic graph primitives against an opinionated coding-agent runtime // Where the two genuinely overlap, why a generic graph runtime has no word for worktree or merge conflict, what vincent's opinionatedness costs, and how the two layer instead of compete.
vincent 0.9.0: event triggers, pull request actions, and a firmer base for 1.0 // What vincent 0.9.0 adds and hardens: triggers that propose work on their own, pull request actions from the task, agents inside the task container, and the fixes and guardrails that make it the biggest step yet toward a first stable release.
When agents write code faster than humans can review it // Agentic coding moved the bottleneck from implementation to review and accountability. What a redesigned review pipeline needs, what vincent already does about it, and the parts I have not solved.
vincent's next refactor: intake, workshop, and handoff as three separate pillars // Why I want vincent to work like the developer of a small software company, the three pillars that job splits into, how GitHub issue handling is tangled into today's workflows, and why pulling it out is the first step.