Explorer
The Explorer calls the docs worker, the worker calls the library: searchProviderDetailed or searchWithFallback for a search, searchAllDetailed for a fan-out, readUrlDetailed for a page, listProviders for the matrix. Exactly what a script would do. Nothing on the page is a mock, a slow answer is the engine being slow and a 503 means the worker has no key for what you asked.
| Operation | What it answers | CLI equivalent |
|---|---|---|
| Search | up to ten results from one provider, or the first configured one with its fallback chain, plus ignored filters and the pagination status | web search --provider <name> --json |
| Fan-out | every provider the worker has a key for, deduplicated, with the providers behind each URL and the failures kept | web search --provider all --json |
| Read | one page as Markdown, bounded to 500, 2 000 or 8 000 characters, with the reader that answered and the readers tried | web read --max-chars <n> --json |
| Providers | listProviders() on the worker: capabilities, and whether the worker holds a key | web providers --json |
Every query is a deep link. /explorer?op=search&q=nitro&provider=brave opens the page on that answer.
Caching and manners
Answers are cached on the worker, in KV in production: fifteen minutes for a search or a fan-out, an hour for a page. An answer with a provider failure inside is kept for five minutes only, a thrown failure is never cached, so a typo or an outage does not stick. One address can start twenty new provider queries a minute, cache hits are free.
Each operation gets one budget of 25 seconds through deadline, fan-out runs three providers at a time, and a 429 is not retried. A rate limit from the engine comes back as a rate limit from the worker, retrying it into a ban would help nobody. Continuation tokens stay on the worker, so nobody pages through a provider's quota from a demo page.
The worker holds keys for some providers, not all. The Providers tab says which. A search against a provider without a key is a 503, not a bug in your code.
The landing
The panels on the home page start from answers recorded through the library and labelled sample. As the page walks through its four queries, each one is replaced by the worker's live answer and relabelled live. The recorded answers live in docs/app/utils/landing-fixtures.ts and are regenerated with the library, never edited by hand.