Back

What else could the docs do?

The Global Accounts Playground interface angled over a blurred field of grass.

We were adding a few new products to our documentation. The existing structure worked. It was clear, predictable, and easy to navigate, so there was no problem to fix. We could have added the new material, followed the same patterns, and moved on. Instead, the update gave us a chance to ask a different question: could one part of the docs do more than explain the product?

A demo inside the docs

That question led us to build a working demo directly into the documentation. It sits alongside the written material and gives people another way to explore the same system. The documentation is still where someone goes for detail, accuracy, and reference. None of that changed. The demo is supplemental, useful in the moments when words and code samples might not tell the whole story.

Someone can move between six different product contexts and use the app. As they do, the exact API requests, responses, and webhooks appear beside it. Most documentation explains those two views separately, and there are good reasons for that. Each part needs room to be explained properly. Putting them side by side simply adds another perspective. It lets someone take an action in the product and watch the corresponding API activity unfold at the same time.

The Global Accounts Playground — use the product, watch the API calls fire.

The information was already present in the documentation. The demo didn’t need to invent a new story or replace the material around it. It gave that material a way to play out in front of someone. That felt like a useful addition, particularly for a system with a lot happening beneath the surface.

Keeping what worked

There is often a temptation to talk about design work as if everything familiar needs to be reinvented. A convention is seen as a constraint, and a new idea has to replace the old one. That wasn’t the case here. The familiar structure still does most of the work. The navigation, written guides, code samples, and reference material are all where people expect them to be. Questioning the convention didn’t mean throwing it out. We kept what worked and pushed one part a little further.

Where AI fits

AI makes the role of documentation more interesting. Agents can already retrieve, summarize, and act on a great deal of written material, including pages that were never designed specifically for them. That does not make clear and structured documentation less important. It may simply mean that people arrive at a documentation site with different needs. Sometimes they need a specific answer or a reference they can return to. Sometimes they want to understand how the pieces fit together. And sometimes it helps to watch the system behave. The demo is for that last moment.

This is not an argument that every documentation site needs a working demo. Most documentation should remain straightforward. Adding interaction without a clear reason can make something harder to understand, not easier. This happened to be a place where the product and the API could be shown together in a useful way, so we made room for it.

The details carry it

The result depends on details that are easy to dismiss as secondary. The transitions, the different product contexts, and the way the interface and API trace respond to each other do not change the underlying information, but they shape how the experience feels and how easily it can be followed. That kind of care is often invisible when it works, which may be why it is so easy to undervalue. Five of them, up close.

Six apps, one system

There are six apps in the demo and each one is styled like its own product. All of them run on the same API.

1:1 with iOS, including liquid glass

Most recreations of iOS get close and stop there, and you can feel the difference. This one matches the real thing. Notifications come in through liquid glass, which we built the way Aave describes.

Real iOS transitions on web

Sheets and page transitions move the way they do on iPhone. The rolling numbers are our own contentTransition(.numericText()).

Bespoke animations for issuing the card

Every app issues its card with its own animation. This is Z's, a live 3D render in three.js.

Fluid motion

The Aurora app never cuts between screens. Whatever you're looking at travels to its next spot, and that happens in so many small places that the whole app starts to feel fluid.

Tools and models

For the curious — this is what the work actually ran on.

Design
Figmaflows, comps, and the card art
Motion
Motionthe springs behind the pushes and sheets
3D
three.jsthe Z card
Build
CursorNext.js and TypeScript, deployed on Vercel
Models
Opus 4.8 and Fablewrote the code, read the drafts
Docs
Mintlifythe host the demo lives inside
Capture
Screen Studioevery recording in this post

What we learned

Some of this went smoothly. Some of it did not. A few things we would tell anyone trying something similar.

The demo is a second product

It looks like a page in the docs, but it carries the obligations of an app: it has to work, stay current, and match the API it claims to show. We signed up for maintenance, not just a launch.

We were guests in someone else's platform

The docs run on Mintlify, which we don’t control. Custom code loads after the page paints, styling hooks change between versions, and every workaround has to survive their next release. Building inside a host you don’t own means designing for the parts you can’t see.

Real shapes or nothing

The first version of the trace used tidied-up sample data, and it read as fake immediately. Documentation spends years earning trust; a demo can spend it in seconds. Everything in the trace now mirrors what the API actually returns.

Knowing when to stop was the hardest part

Every corner we polished revealed another one. At some point the demo was good enough to ship and easy enough to keep improving, and that had to be the bar — not done, just honest.

The lesson is fairly modest. We didn’t replace a broken system. We took a familiar surface that was already working and asked what else it might do. Most of it stayed the same. One part went a little further. Sometimes that is all questioning a convention needs to mean.

I want to acknowledge Pat Capulong's work here on this project. He designed and built the Docs site. He worked through more than a thousand revisions and details to get it here.

Geoff Teehan

Comments

Add something we missed, ask a question, or disagree. Just be cool.