<!-- Edit mode · Docs · clayjs · https://clayjs.com/docs/edit-mode · generated from the page; every page has one at its path plus .md -->

[Docs](https://clayjs.com/docs) · Edit mode

# Who may edit

Who may edit a page, and the four places clayjs looks to decide, in order.

Saving requires edit mode. On the platforms, you never think about this: [hyperclay.com](https://hyperclay.com/) arms it with a cookie when you're the owner, and Hyperclay Local and HTML Clay arm it for local files automatically. Resolution order:

| Priority | Source |
| --- | --- |
| 1 | `?editmode=true` / `?editmode=false` in the URL |
| 2 | `window.clayEditMode` set before clay.js loads |
| 3 | A save token the host put on the root element |
| 4 | The platform's owner cookie |

The token sits above the cookie because it is the stronger claim: the host issued it for this document, while a cookie is ambient. A sandboxed document cannot read a cookie at all.

Serving files from your own server? Arm it yourself:

```html
<script>window.clayEditMode = true</script>
<script src="https://clayjs.com/v1/clay.js"></script>
```

Edit mode is client-side behavior. Whether a save is _accepted_ is always the server's decision.
