page.mooring.page

mooring.page

{
  "id": "page.mooring.page",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "path",
          "title",
          "createdAt"
        ],
        "properties": {
          "path": {
            "type": "string",
            "maxLength": 1024,
            "description": "URL path for this page, with a leading slash (ex: /about). Paths should be lowercase; paths differing only in case are the same page. Uniqueness within a site is enforced by the app, not the lexicon; renderers encountering duplicates should prefer the most recently updated page."
          },
          "site": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI of the page.mooring.site record this page belongs to. When absent, the page belongs to the owner's default site (rkey 'self')."
          },
          "title": {
            "type": "string",
            "maxLength": 5000,
            "maxGraphemes": 500
          },
          "labels": {
            "refs": [
              "com.atproto.label.defs#selfLabels"
            ],
            "type": "union"
          },
          "content": {
            "refs": [
              "#markdown"
            ],
            "type": "union",
            "closed": false,
            "description": "Open union defining the page's content. Each entry must specify a $type; other lexicons may extend this with additional content formats."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Client-declared timestamp when this record was created."
          },
          "updatedAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp of the last content update."
          },
          "visibility": {
            "type": "string",
            "default": "public",
            "description": "Rendering visibility: 'public' pages are served and listed, 'unlisted' pages are served but not listed, 'draft' pages are not served. This controls rendering only — atproto records are publicly readable regardless.",
            "knownValues": [
              "public",
              "unlisted",
              "draft"
            ]
          },
          "description": {
            "type": "string",
            "maxLength": 30000,
            "description": "Short description of the page, used for meta tags and previews.",
            "maxGraphemes": 3000
          },
          "publishedAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp when the page was first made public. Omit for pages that have never been published."
          }
        }
      }
    },
    "markdown": {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 100000,
          "description": "Page body as CommonMark markdown."
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "An authored page on a Mooring site (e.g. /about, /now, /contact)."
}

Validate Record

Validate a record against page.mooring.page

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:o3zuar7kk2mrz7d4sqxdisy2
CID
bafyreial4ejthwnqrnx2mxgg6wxybmqgbvwnbt7pkzno3kbzztaa2reyei
Indexed At
2026-08-15 22:05 UTC
AT-URI
at://did:plc:o3zuar7kk2mrz7d4sqxdisy2/com.atproto.lexicon.schema/page.mooring.page

Referenced Schemas (1)

Lexicon Garden

@