Product
Spindle
Spindle runs B2B cold outreach end to end, with an AI sales rep governed by code — not vibes.
Problem
Most outreach tools hand the conversation to a language model and hope it behaves. That’s how you get an AI that “agrees” to a refund, ignores an opt-out, or gets talked out of its own rules.
Approach
Spindle — a desktop cockpit (Tauri) over a Rust core — discovers and scores leads, then runs email and SMS cadences with an embedded AI SDR that replies to prospects, books meetings, and escalates to me on Discord when a human is needed. The same core sits behind a portable contract, so it runs as a desktop app today and a web service tomorrow without a rewrite.
The hard part
The AI never gets to be the authority. Every conversation moves through a nine-state machine whose transitions are validated before anything is written — so a “just mark me as booked” injection literally cannot reach the booked state. A deterministic check scans each inbound message for crisis, legal, and opt-out signals before the model is called, and a consent gate enforces DNC and CAN-SPAM rules at send time. The model proposes; the code disposes. All of it is tested offline with fakes — no API keys, zero spend.
Outcome
Roughly 85,000 lines of Rust across a multi-crate workspace, 176+ offline tests, and a CI gate that fails on a single warning. In active daily development.