"I Only Trusted My Channel Abstraction After Plugging In the Third Provider"

Dev.to AI
Generative AI AI Tools

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 input from messaging channels. Telegram was the first channel. Feishu followed a few weeks later. Both went fine.