Blog

What we measure

Numbers from running inference in this market: what a language costs to tokenize, what a payment actually confirms, and where our own pricing sits.

Measurement 31 July 2026 9 min

We measured Whisper on 19 African languages

Eleven of them have no language code at all, so you cannot tell the model what it is listening to. It picks for you, and it picked wrong on all nineteen. Here is the full table, the method, and the one model that does better.

Guide 31 July 2026 7 min

The African-language models you are allowed to ship

For two years the best open models for African languages carried a licence that forbids selling anything built on them. That changed quietly in late 2025, and most people have not noticed. Here is what you may actually use, for text and for speech.

Measurement 30 July 2026 8 min

How to choose a model for an African language

The same Amharic sentence costs 1.94x English on one model and 7.69x on another. Picking on benchmark scores alone can quadruple your bill for identical work. Here is the measured data for eight languages, and the trap that makes the best tokenizer the wrong choice.

Guide 30 July 2026 7 min

Seven ways to cut an inference bill without changing model

Most teams reach for a smaller model first, which usually costs them quality they did not need to trade. These seven changes are free, take an afternoon, and several of them cut spend by more than switching model would.

Engineering 30 July 2026 8 min

Building an LLM feature that survives a bad connection

Streaming, retries and timeouts all behave differently when the network drops halfway through a two-second response. Most LLM tutorials assume a connection that does not. Here is what actually breaks and what to do about each one.

Engineering 30 July 2026 6 min

Structured output that actually parses

We tested every model we serve with a real strict json_schema request instead of trusting the catalogue tags. Twelve of them can call a function and still cannot hand you parseable JSON. Here is how to tell, and what to do about the ones that fail.

Guide 30 July 2026 6 min

Migrating an OpenAI app to open-weight models

Two values change and your SDK, retries and parsing all carry over. What does not carry over is model names, three parameters that behave differently, and one assumption about max_tokens that will bite you on reasoning models.

New posts by email

Measurements and engineering notes, when there are new ones. There is also an RSS feed if you would rather not give us an address.

New posts only. Unsubscribe from any of them.