From our blog

Check out our latest news and updates.

Structured output beats parsing prose
Structured output beats parsing prose
27/08/2026 — [email protected]

If your code needs a value from a model, ask for JSON and validate it. Regexing an answer out of a paragraph is a bug wa...

An agent is a loop, not a personality
An agent is a loop, not a personality
23/08/2026 — [email protected]

Strip away the branding and an agent is a small loop: call the model, run the tool it asked for, feed the result back, r...

Tool calling is an API contract the model can read
Tool calling is an API contract the model can read
21/08/2026 — [email protected]

A tool definition is documentation with a schema attached. Write it for a capable colleague who has never seen your syst...

When a workflow beats an agent
When a workflow beats an agent
15/08/2026 — [email protected]

If you already know the steps, do not ask a model to rediscover them on every request. A fixed pipeline with model calls...

What an AI agent can actually do with a design system
What an AI agent can actually do with a design system
13/08/2026 — [email protected]

Given a real design system, a model stops inventing interfaces and starts assembling them. The difference is not the mod...

Design tokens are the interface AI needs
Design tokens are the interface AI needs
11/08/2026 — [email protected]

A token that only names a hex value has saved you nothing. A token that names a job tells a model which decision it is m...

Generating layouts that respect a grid
Generating layouts that respect a grid
09/08/2026 — [email protected]

Generated layouts usually look almost right, and "almost" is where the eye catches. Most of the fix is stating the rules...

Why component names matter more with AI in the loop
Why component names matter more with AI in the loop
07/08/2026 — [email protected]

A human reads a bad component name and opens the file. A model reads it and guesses. Naming quietly became an interface...

Reviewing AI-generated UI: a checklist
Reviewing AI-generated UI: a checklist
05/08/2026 — [email protected]

Generated interfaces fail in a predictable set of places. Knowing which ones turns review from a vague unease into a lis...

Streaming responses without breaking your UI
Streaming responses without breaking your UI
28/07/2026 — [email protected]

Streaming makes a slow response feel fast. It also means rendering text that is syntactically incomplete, and handling a...

Rate limits, retries and the backoff you actually need
Rate limits, retries and the backoff you actually need
26/07/2026 — [email protected]

Every AI feature meets a 429 eventually. Whether that is a blip or an outage depends on retry logic written before you n...

What to tell users when the model is wrong
What to tell users when the model is wrong
18/07/2026 — [email protected]

Your AI feature will be confidently wrong in front of a user. What the interface does in that moment decides whether the...