@che.kulhan on the why, OpenAI hasn’t really explained it. But if you look at what they’ve killed lately (Assistants, Agent Builder, now Prompt Objects) it’s all the hosted dashboard stuff, and the state keeps getting pushed into your own code. More work for us honestly. The one upside is that once it’s in your code there’s nothing hosted left for them to deprecate later.
On Gemini, I’d actually price that out before moving. It’s a bigger job than the migration you’re trying to dodge. You get a new SDK, function calling works differently, you re-tune prompts for a different model, and you’d still be versioning prompts in your own code because Gemini doesn’t give you a hosted prompt store either. So it ends up being the OpenAI migration plus a re-platform on top of it.
If the goal is just to stop getting jerked around every few months, the thing that worked for me was moving all the config into my own DB one time. After that nothing hosted can be deprecated on me again, and if I ever do want to switch providers it’s easy because the prompts already live in my code instead of theirs.
For multi-client that’s really the part that helps. One backend, each client is just a row, and the provider becomes something you can swap instead of a full rewrite every time. Can walk you through how I set it up if that’s useful.