# page.mooring.page

> Published by [mooring.page](https://lexicon.garden/identity/did:plc:o3zuar7kk2mrz7d4sqxdisy2)

✓ This is the authoritative definition for this NSID.

## Description

An authored page on a Mooring site (e.g. /about, /now, /contact).

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:o3zuar7kk2mrz7d4sqxdisy2/page.mooring.page)
- [Documentation](https://lexicon.garden/lexicon/did:plc:o3zuar7kk2mrz7d4sqxdisy2/page.mooring.page/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:o3zuar7kk2mrz7d4sqxdisy2/page.mooring.page/examples)

## Definitions

### `page.mooring.page`

**Type**: `record`

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `path` | `string` | Yes | 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` | `string` (at-uri) | No | 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` | `string` | Yes |  |
| `labels` | `union` | No |  |
| `content` | `union` | No | Open union defining the page's content. Each entry must specify a $type; other lexicons may extend this with additional content formats. |
| `createdAt` | `string` (datetime) | Yes | Client-declared timestamp when this record was created. |
| `updatedAt` | `string` (datetime) | No | Timestamp of the last content update. |
| `visibility` | `string` | No | 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. |
| `description` | `string` | No | Short description of the page, used for meta tags and previews. |
| `publishedAt` | `string` (datetime) | No | Timestamp when the page was first made public. Omit for pages that have never been published. |

### `page.mooring.page#markdown`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `text` | `string` | Yes | Page body as CommonMark markdown. |

## Raw Schema

```json
{
  "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)."
}
```
