Javlon Baxtiyorov
← Writing

The June 2026 model wave — and why I still build for portability

Claude Fable 5, GPT-5.5, Gemini 3.5, Claude as an iPhone option — and an export-control order that pulled two frontier models overnight. A senior engineer's case for never hard-wiring your product to one model.

The June 2026 model wave — and why I still build for portability
Photo by Steve Jurvetson · CC BY 2.0

The last two weeks of June 2026 have been a firehose. Anthropic shipped Claude Fable 5 on June 9 — a 1-million-token context window, 128K output tokens, and state-of-the-art numbers on nearly every benchmark anyone bothered to run. Google has Gemini 3.5 Pro and Claude Sonnet 4.8 both expected before the month is out. OpenAI pushed GPT-5.5. Apple announced a Gemini-powered Siri and, for the first time, made Claude a selectable option on the iPhone. Microsoft's Foundry catalog now lists more than 11,000 models.

If you ship software for a living, the temptation in a moment like this is to pick the current benchmark leader and wire your product straight into it. I want to make the case for the opposite.

The thing that actually happened on June 12

Three days after Fable 5 launched, Anthropic disclosed it had received a US government export-control directive requiring it to suspend access to both Fable 5 and Mythos 5. Overnight, a model that teams had started designing around became unavailable to a slice of its users.

Nobody's product roadmap had "frontier model pulled by a government order" on it. That's the point. The disruptions that hurt you are never the ones you planned for — a price change, a deprecation, a region you can no longer serve, a rate limit that arrives the week you go viral.

Portability is a design decision, not a library

I've spent most of my career in the layer underneath the thing people see — payments, auth, the pipelines that keep large systems moving. The lesson that transfers directly to LLMs is one I learned integrating five payment providers behind a single interface: you don't abstract a dependency because you think you'll switch. You abstract it so that switching is possible on a bad day.

Concretely, for any product that leans on a model:

  • One interface, many providers. Your application code asks for "a completion with these constraints," not "a call to vendor X's endpoint." The provider-specific request shapes, auth, and streaming quirks live behind that seam — and only there.
  • Capabilities as flags, not assumptions. Context window, tool-calling, structured output, vision — declare what a task needs and let the router pick a model that satisfies it. When a model disappears, the router degrades instead of the product.
  • A fallback chain you've actually tested. Primary model down or denied? Fall through to the next that meets the capability bar. Test this path on purpose; an untested fallback is just a slower outage.
  • An eval harness you own. Before you swap models, you need to know whether quality held. A small, version-controlled set of representative cases turns "the new model feels worse" into a number you can decide on.

None of this is exotic. It's the same discipline as never letting raw SQL leak across your whole codebase. The cost is a few hundred lines and the humility to assume your favorite vendor will, eventually, have a bad week.

The takeaway

This wave is genuinely exciting — the capabilities are real and the prices keep falling. Use them. But the engineers who'll sleep through the next export order, deprecation, or pricing surprise are the ones who treated the model as a replaceable component from day one. Build for the bad day, and the good days take care of themselves.


Sources: LLM-Stats AI updates · TechWire Asia — Anthropic builds out Claude · BuildFastWithAI — AI News June 8, 2026


← All writing Get in touch →