A Gateway Abstracts Your Bill,Not Your Integration
Swapping AI models looks like one config line. A gateway abstracts your bill, not your integration, and the difference cost me a day.
Swapping AI models looks like one config line, which makes it easy to believe your code can do something it cannot. I found out the hard way when my credits ran out, and the lesson is worth more than the day it cost me.
What I thought I was buying
Last week Stripe agreed to buy OpenRouter. Four days later my OpenRouter credits ran out, and I finally found out what I had been paying them for. It was not the thing I thought.
I thought I was buying portability. I was buying a single bill.
For months every reasoning call in my knowledge system went through OpenRouter to one OpenAI model. When the balance hit zero on Sunday night I pointed everything at Gemini. Three environment variables, no code. I ran a job, it came back clean, and went to bed.
I had changed two things and only counted one. I left the gateway, and I changed the model.
The failure showed up a day later
By Monday afternoon, one of my three jobs had been failing every session since the night before. It is the one that sends a strict JSON schema, and Gemini was rejecting it.
Not the structure of it. The bounds. minItems, maxItems, pattern, minLength. The parts that say how many and how long. OpenAI supports those. Gemini refuses the request outright.
So the schema had never been portable. It was valid for exactly one model, and I had been sitting on that model the whole time.
This is not an argument against gateways
If I had switched to Gemini through OpenRouter, the same request would have failed the same way. A gateway hands your schema to the provider, it does not rewrite it.
The gateway was never doing that work. The model was.
That is the trap.
What Stripe actually bought
One more thing I found. OpenRouter takes no markup on tokens, they pass provider pricing straight through. The only money they ever took beyond cost was five and a half percent to load credits, on rails Stripe already owned.
So Stripe did not pay somewhere between seven and eight billion dollars for a routing algorithm. It bought the meter, and it already owned the till. Patrick Collison called tokens "the central currency for companies building with AI." Stripe has spent its whole existence counting other people's money and sending the bill.
Watch what that does to the accounting. Most companies cannot tell you what a single customer request costs to serve. When the meter and the payment sit in the same place, they can, and inference stops being an infrastructure line and becomes cost of goods sold.
What I would actually do
I am staying on OpenRouter. One key, one invoice, one place to compare prices, and somewhere to fail over to at three in the morning is worth real money. Go direct when you need something provider-native like prompt caching.
Just do not let it convince you the models are interchangeable.
Send the structure every provider agrees on. Check the bounds in your own code. And count how many shapes of request you actually send. Mine was three. I had tested one.
A gateway abstracts your bill. It does not abstract your integration. I spent a day learning the difference, and Stripe just bought the half that turned out to be worth more.
Built-In AI or an Outside Tool? Start Inside, Almost Always
The AI built into software you already pay for is usually worse. Start with it anyway, because every integration is one more thing that breaks.
ReadBy Hand or By AI Is the Wrong Question
A designer with twenty years of depth quit AI because the output looked like a template. He was right about the output, wrong about the conclusion.
ReadAI Is Not Erasing Careers. It Is Erasing the Bottom Rung.
Whole careers are not disappearing. The entry-level work that turned graduates into trusted professionals is, and nobody has replaced it.
ReadWorking on something like this?
Bring the app or the process to a free 15-minute call. I will tell you what I would look at first, and whether I am the right person for it.