Build one complete file
Use a UTF-8.html or .htm file, at most 512 KiB, at any regular repository
path. Include the HTML, CSS, JavaScript, and data in that file. For example, a
bookshelf can embed its book list as a JavaScript array and filter it entirely
in the browser. A separate JSON file or build step is unnecessary.
Inline styles, scripts, and event handlers work. Use system fonts and embedded
data: images. Relative assets, external fonts, CDN libraries, remote images,
API requests, frames, and backend services are unsupported. A relative
fetch("books.json") will not work: incorporate that data before publishing.
There is no Commons API or credential bridge into the artifact.
Build interactions with the document’s own DOM and in-memory state. Browser
storage, parent-page access, popups, submitted forms, and navigation out of the
preview are restricted. Viewer edits are temporary; refresh discards them.
Do not put credentials or private user context into the file. Its full source
is readable by everyone with repository access.