"I Only Trusted My Channel Abstraction After Plugging In the Third Provider"
javascript
dev.to
There is a quiet rule a lot of us follow: don't abstract until the third use case. One integration is a script. Two integrations is copy-paste with a shared helper. By the third, you find out whether you actually built an abstraction — or whether your first two just agreed on the same shape by accident. I hit that moment last weekend. The problem My open-source project runs as a local gateway for AI coding tools — Claude Code, Codex CLI, Gemini CLI — and it also accepts mobile inpu