Vitesse Automation
Modern industrial AI platform — built solo over 14 months, ~100% via Claude Code, now shipping to paying customers in France and the United States.
This case study is a draft. Full version coming.
What it is
Vitesse Automation builds AI-native tooling for industrial automation. The product extracts live data from PLCs (Siemens, Schneider, Beckhoff, Allen Bradley, others), runs voice-controlled AI agents that operate real machinery, and ships as a cloud SPA plus an on-device edge runtime.
The live product is at app.vitesse.dev (Clerk-gated; demo access available on request).
What I built
Starting April 2025 from a clean slate, I built the modern Vitesse platform solo, almost entirely with Claude Code. The shape:
- 96k-LOC frontend — TypeScript, React, Vite. Manager-pattern data layer (components never fetch); custom virtualized symbol grid (80 pooled DOM rows + Canvas sparklines) after
ag-gridcouldn’t handle 220k-symbol PLC trees at interactive frame rates. Dual deployment as a cloud SPA on Cloudflare Pages and as an offline Docker image for edge devices, with 100% page-component reuse. - 5 Cloudflare Workers in production, 3 of them using Durable Objects:
ConversationRoomDO per user — WebSocket sessions, AI streaming with hierarchical sub-agents, tool-call lifecycle as a state machine.FleetManagersingleton DO — bidirectional WebSocket relay between edge gateways and browser clients, plus a Hetzner Cloud VM spawning module (~620 LOC, provider-abstracted, IP-correlation between cloud-init and gateway heartbeats).ReleaseManagerDO — manifest lifecycle (draft → canary → general → suspended), per-org rollout, updater command routing.
- Voice mode integrating 5 S2S providers — OpenAI Realtime, Google Gemini Live, AWS Nova Sonic, xAI Grok, Fixie Ultravox — via LiveKit Agents on Fly.io.
- Multi-language Docker plugin architecture on the edge —
gateway-core(Python) orchestrator spawning containerized plugins per industrial protocol (S7, ADS, Modbus, EtherNet/IP, MQTT, OPC-UA). - OTA system with A/B slot versioning, AWS IoT Greengrass-style loader pattern, canary rollouts.
- WebRTC video streaming via mediasoup SFU with self-hosted Coturn TURN relay for remote camera access through corporate firewalls.
Customers
- Setforge (Farinia Group, France) — multiple factories
- Alten (France) — partnership + their clients
- Enervenue (US) — COPV pressure-chamber monitoring
- Rexel (France) — customer + distribution partner as of May 2026
- Prospects: Mecatherm, Veolia, Sanofi
The Claude Code angle
The whole modern platform was built with Claude Code as the primary authoring tool. I wrote almost no code by hand over the 14 months — my role was architecture, code review, and prompt design. The implication is that one engineer + Claude + the right substrate can ship what would historically have required a small team. The substrate matters: the Cardinal Rule (components never fetch), the Manager Pattern, the Base Component Pattern, the Entity Path Pattern — these are structural rails that make AI-authored code converge to a consistent shape across the codebase.
[More detail coming — architectural deep-dives on the Durable Object design, the voice agent provider abstraction, the OTA loader pattern, and the cloud-spawning module.]