Blog
Notes on building A2UI Catalog — protocol migrations, frugal architecture, and problems nobody asked us to solve.
a2uicatalog · Vol. 20
We tested A2UI Express on our own catalog, and it's a banger
Google published A2UI Express on 27 October. I ran it against our 557-atom catalogue on six briefs and seven models: fewer tokens on every model, the 80x was not confirmed in our tests. The bigger result is about the catalogue: keep most of a screen curated and fixed, and route each request to a small slice before the model writes.
a2uicatalog · Vol. 19
20 D3 chart atoms, and a morph from one chart to another
The A2UI Atomic Catalog adds 20 D3-powered chart atoms and a morph atom that turns a treemap into a sunburst from a one-line JSON patch, all through MCP.
a2uicatalog · Vol. 18
Accessibility belongs in the spec, not the audit: scoring my own site, 69 to 94 to 69 to 100
I audited my own AI-built component catalog and site for accessibility and turned the audit into an open-source scoring skill. The site went from 69 to 94, back to 69 when I switched on four rules my scanner had been skipping, then to 99, and to 100 on the 599 pages meant for readers under the stricter release version. The lesson: write the rules into the spec, and check what your scanner isn't checking.
a2uicatalog · Vol. 16
A2UI on Google Slides: build a deck from an agent's payload
A2UI now builds Google Slides decks. An agent sends a payload, an MCP tool returns a .pptx, and Google Slides opens it. Open source, with the pipe explained.
a2uicatalog · Vol. 17
A2UI to PowerPoint: build a .pptx from an agent's payload
The same A2UI payload now becomes a PowerPoint file. What's inside a .pptx, how an agent builds one through MCP, and why the text keeps a margin for a missing font.
a2uicatalog · Vol. 15
Share an article, read it offline: A2UI on Android
An Android app that reads any article you share, keeps it offline and draws it natively in Jetpack Compose with A2UI. Open source, prompt included.
a2uicatalog · Vol. 14
A2UI on Android: a Jetpack Compose component catalog for androidx.a2ui
Google's androidx.a2ui renders agent UIs in Jetpack Compose, with Material 3 versions of the 18 basic components. One library adds the whole catalog, so an agent can show real UI.
a2uicatalog · Vol. 13
A small methods update on the Jev/A2UI results
A follow-up to the Jev atom-selection pilot, with a first look at Cloudflare's Clef as a third chooser: embeddings close most of the open-pool retrieval gap (83% to 96% recall), the selector question stays genuinely unresolved on the data available, and a real trace of an apparent Haiku result turned into a permanent protocol fix rather than a headline.
using a2ui in MCP Apps · Vol. 12
The Share To Pattern: Turning a Phone's Share Sheet into a Durable Agent
A long-standing wish list item — analyse and remember articles I read, without a spreadsheet or bookmarks I'd never touch again on mobile — turned into a durable-storage MCP App, registered as a native share target, so sharing an article IS the entire interaction.
using a2ui in Gemini Enterprise · Vol. 11
Adding an MCP App to Gemini Enterprise, Step by Step
Part 1 and 2 of this series rendered the catalogue in Gemini Enterprise using GE's own native A2UI vocabulary. This is the other path: a real MCP server, wired in as a BYO-MCP connector, rendering the same Workspace and Wall Builder through the open MCP Apps spec instead — plus a tool-selection bug, an ad-hoc composed landing page, and a second MCP App (Diagram Studio) along the way.
a2uicatalog · Vol. 10
Testing Jev: what a hand-picked shortlist was actually hiding
An empirical test of Jev, a small routing model, on six UI-generation tasks -- and the follow-up that found its F1 0.91 to 0.95 gain (up from unaided) came from the hand-written shortlist, not from Jev. With no shortlist, fixing retrieval was the real lever; Jev's defensible edge, once retrieval is fixed, is cost and speed, not accuracy; and full-page composition from a one-sentence brief on an unseen domain still fails a pre-registered bar. Method, results, the correction, and a gallery of the renders.
Self Improving Agents · Vol. 09
Everyone is sleeping but improvements are being worked on and PRs are being opened.
Quick look at a pattern for using scheduled agents for self improving
using a2ui in MCP Apps · Vol. 07
MCP Apps Isn't A2UI's Competitor — It's How It Travels
I was sceptical of MCP at first — felt like marketing, felt like 'it's just an API.' Then I mapped out where transport, envelope and document model actually sit, and realised MCP Apps isn't competing with A2UI at all. It's how the same payload reaches Claude, ChatGPT and my own site without three separate builds.
using a2ui in MCP Apps · Vol. 08
MCP, A2UI, and a Durable Object per Human
Where the state actually lives across MCP, A2UI and A2A — and an afternoon of connector debugging that turned up six defects, all the same shape, including a citation for an MCP spec document that didn't exist while a real one sat one search away.
using a2ui in ChatGPT · Vol. 06
The A2UI Catalog Now Renders Inside ChatGPT
Same connector URL, same payloads, a second host — and not a line of code changed to reach it. The same airspace playbook now renders full-screen in Claude and ChatGPT alike. Getting there cost nothing; what it exposed was three latent defects that existing connections had been quietly hiding.
using a2ui in Claude · Vol. 04
The A2UI Catalog Now Renders Inside Claude.ai
Add one connector URL and Claude renders real, interactive UI from the catalog's 474 typed atoms — charts, gauges, steppers, dashboards — inline in the conversation, without writing a line of HTML.
using a2ui in Gemini Enterprise · Vol. 03
Rich UI in Gemini Enterprise: A Field Report, Part 2 — The Print-Rendering Workaround for Custom Catalogs
Gemini Enterprise only renders the 18 standard-catalog A2UI primitives, so the catalogue's own charts, gauges and dashboards can't be sent as native components. The fix: render them server-side to an image and deliver that through the one primitive that always works — with two real demos, and the same trick applied to Google Chat.
using a2ui in Google Chat · Vol. 05
Rich UI in Google Chat: a real, self-hostable bot built on the print-channel trick
Google Chat's cardsV2 widget set is fixed — no custom layout, no charts beyond what Google ships. The fix: render the atom to a real image server-side and hand Chat a plain URL. This piece covers the real, self-hostable Cloud Run bundle, the exact wire-level trace of one request, and the Chat-setup gotchas Google's own docs don't lead with.
using a2ui in Gemini Enterprise · Vol. 02
Rich UI in Gemini Enterprise: A Field Report on A2A Agents and A2UI Primitives
Every component in the A2UI v0.8 Basic Catalog, tested one at a time against a real Gemini Enterprise agent, plus two real working demo agents built entirely from them — and the wishlist those tests surfaced.
Problems Nobody Asked Me to Solve · Vol. 01
Building in the Age of Frontier Models: Why Frugality is My Go-To Architecture
Frontier models are non-deterministic and expensive. My answer is artifact distillation — spend the model once, keep the output forever. Five problems nobody asked me to solve, and what each one taught me about building things that outlast the model that built them.
Live Pipeline
compiled atoms573
spec.json1018 KB
build8095cce