All posts
architectureengineering

Why provider-agnostic beats vendor lock-in

Email, AI, and payments all speak standard protocols. Wire to the protocol, not the vendor, and swapping providers becomes an env change.

By The SaasHangar crew

There's a quiet tax in most starter kits: they hard-wire you to one vendor. One auth SaaS, one mail SDK, one AI provider. Convenient on day one, expensive on day ninety.

Wire to the protocol, not the vendor

The trick is boring and powerful: integrate against the standard interface, not a specific company's SDK.

  • Email → SMTP. Resend, SES, Postmark, Mailgun, even Gmail all speak it. Change three env vars, keep your code.
  • AI → the OpenAI-compatible chat API. OpenRouter, OpenAI, llama.cpp, Ollama, Groq, Together all expose it. Point AI_BASE_URL wherever you want.
  • Payments → a webhook + a signed event. The processor is replaceable behind it.

The payoff

When the interface is the contract, the provider is a config value. You test locally against a free model, ship to a paid one, and never touch application code in between.

# test for free, locally
AI_BASE_URL=http://localhost:8080/v1

# ship to production
AI_BASE_URL=https://openrouter.ai/api/v1

Lock-in isn't a feature. Optionality is.