Document Lexiconimport { Table } from '@/app/components/docs'
Document Lexicon
The site.standard.document lexicon provides metadata for documents published on the web.
Overview
Documents may be standalone or associated with a publication. This lexicon can be used to store a document's content and its associated metadata.
Schema
Required Properties
<Table
headers={['Property', 'Type', 'Description']}
rows={[
['site', 'string', <>Points to a publication record <code>at://</code> or a publication url <code>https://</code> for loose documents. Avoid trailing slashes.</>],
['title', 'string', <>Title of the document. <code>maxLength: 5000</code> <code>maxGraphemes: 500</code></>],
['publishedAt', 'datetime', 'Timestamp of the documents publish time.'],
]}
/>
Optional Properties
<Table
headers={['Property', 'Type', 'Description']}
rows={[
['path', 'string', <>Combine with <code>site</code> or publication <code>url</code> to construct a canonical URL to the document. A slash should be included at the beginning of this value.</>],
['description', 'string', <>A brief description or excerpt from the document. <code>maxLength: 30000</code> <code>maxGraphemes: 3000</code></>],
['coverImage', 'blob', 'Image to used for thumbnail or cover image. Less than 1MB is size.'],
['content', 'union', <>Open union used to define the record's content. Each entry must specify a <code>$type</code></>],
['textContent', 'string', 'Plaintext representation of the documents contents. Should not contain markdown or other formatting.'],
['bskyPostRef', 'ref', 'Strong reference to a Bluesky post. Useful to keep track of comments off-platform.'],
['tags', 'array', <>Array of strings used to tag or categorize the document. Avoid prepending tags with hashtags. <code>maxLength: 1280</code> <code>maxGraphemes: 128</code></>],
['updatedAt', 'datetime', 'Timestamp of the documents last edit.'],
]}
/>
Example
Content Format
The content property is an open union, allowing for extensibility. Each entry must specify a $type and may be extended with other lexicons to support additional content formats like Markdown, blocks, or other rich text.
View the Lexicon
- View full lexicon schema
- Example record
Best Practices
- While we encourage avoid trailing slashes, some may not implement this in practice. If you are validating records, you should trim trailing slashes for site in your codebase.
Related
- Publication lexicon - Collections of documents
- Verification - Link documents to web pages
- Quick Start - Implementation guide
Feb 10, 2026