···148148export default serve;
149149```
150150151151-It's recommended to tag XRPC return values as cacheable; see [`@inlay/cache`](packages/@inlay/cache) for how to do this. In the calling code, it's recommended to wrap XRPC components into `<at.inlay.Placeholder fallback=...>` so that they don't block the entire page.
151151+It's recommended to tag XRPC return values as cacheable; see [`@inlay/cache`](packages/@inlay/cache) for how to do this. In the calling code, it's recommended to wrap XRPC components into `<at.inlay.Loading fallback=...>` so that they don't block the entire page.
152152153153### Pack record
154154
+1-1
generated/at/inlay.ts
···77export * as Fragment from "./inlay/Fragment";
88export * as Maybe from "./inlay/Maybe";
99export * as Missing from "./inlay/Missing";
1010-export * as Placeholder from "./inlay/Placeholder";
1010+export * as Loading from "./inlay/Loading";
1111export * as Slot from "./inlay/Slot";
1212export * as Throw from "./inlay/Throw";
1313export * as component from "./inlay/component";
+6
generated/at/inlay/Loading.ts
···11+/*
22+ * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT.
33+ */
44+55+export * from "./Loading.defs";
66+export * as $defs from "./Loading.defs";
···55import { l } from "@atproto/lex";
66import * as InlayDefs from "./defs.defs";
7788-const $nsid = "at.inlay.Placeholder";
88+const $nsid = "at.inlay.Loading";
991010export { $nsid };
1111
-6
generated/at/inlay/Placeholder.ts
···11-/*
22- * THIS FILE WAS GENERATED BY "@atproto/lex". DO NOT EDIT.
33- */
44-55-export * from "./Placeholder.defs";
66-export * as $defs from "./Placeholder.defs";
···17171818The main route is `/at/:did/:collection/:rkey?componentUri=...`. It fetches the component record, creates an element (`$(componentType, { uri })`), and calls [`@inlay/render`](../packages/@inlay/render) in a loop until everything bottoms out in primitives. Each primitive maps to a custom HTML element (`org-atsui-stack`, `org-atsui-text`, etc.) styled by two CSS files.
19192020-The response is streamed with Hono's `renderToReadableStream`. Slow XRPC calls don't block the whole page — `at.inlay.Placeholder` components use `<Suspense>` to show a fallback while the rest of the page streams.
2020+The response is streamed with Hono's `renderToReadableStream`. Slow XRPC calls don't block the whole page — `at.inlay.Loading` components use `<Suspense>` to show a fallback while the rest of the page streams.
21212222## Primitives
2323