I don’t know what your dev team or product managers are doing right now, but whatever it is, it’s not working.
Let me say something that apparently needs to be said out loud: implementing priority queuing based on subscription tier is not a hard problem. Ultra gets priority over Pro. Pro gets priority over Free. That’s it. Every cloud provider on the planet does this. AWS does it. Azure does it. This is basic infrastructure design. If I came to Google tomorrow I could have this fixed in a week. It is not a complex engineering challenge. It is a prioritization and product decision that someone is simply not making.
And please, do not tell me “use the API” as a solution. If you want developers to use the API, then kill the subscription model entirely and be honest about it. But here’s the reality check on API pricing: it is out of reach for anyone building a real product. The cost per token at scale is absurd. If you’re building your business model around API revenue at current prices, you are already dead. You just don’t know it yet.
Local LLMs are getting better every single month. They are already starting to compete on quality for most use cases. In 2 to 3 years, maybe less, running a capable model locally will be trivial. When that happens, every developer who got burned by your rate limits, your throttling, your “try again in a minute” errors, they are gone. And they are not coming back.
The smart move right now is obvious. You have millions of users. Make the subscription model work. Make it cheap enough that people stay. Make it reliable enough that people trust it. Make Ultra actually mean something. That is where the revenue is. Not in API pricing that only Fortune 500 companies can afford.
You are sitting on one of the biggest developer ecosystems in AI tooling and you are actively pushing people away with infrastructure that cannot handle the load and pricing that makes no sense for independent developers and small teams.
The horizon is not hard to see. Fix the subscription experience or watch your user base migrate the moment a viable local alternative shows up. The clock is ticking.