Skip to main content

Draft vs. published

Every page has two versions:
Description
DraftYour working copy. Updating a page’s HTML changes the draft only.
PublishedWhat visitors actually see at the page’s URL.
When you publish, the draft is copied to the published version. Editing afterward updates only the draft — the live URL keeps showing the last published version until you publish again. A page with newer edits reports has_unpublished_changes: true. This lets you iterate freely without disrupting people who already have the link.
Create a page with "publish": false to save a private draft without making it live. Then call publish when you’re ready.

Access levels

Access is independent of publish state. Set it with the access field:
No sign-in required. Anyone who has the URL can view. This is the default for published pages.
people
Specific people
Invite-only — only emails in allowed_emails can view. By default invitees confirm their email with a one-time link (no Shareable account needed); set require_signin: true to require a sign-in instead. Others are shown an access gate.
private
Only you
Only the owner can open the page.
password
Anyone with the link + the password
No sign-in required, but visitors must enter the page password. Pass a password when setting access: "password" (or one is generated and returned to you).
email_gate
Anyone with a verified email
Semi-public: the link is freely shareable, but each viewer must enter and confirm an email before viewing — and the confirmed address is captured. Set business_only: true to reject personal-email providers (gmail, yahoo, …). Great for forward-able investor decks.

Search-engine indexing

Published pages are not indexed by search engines by default (served with X-Robots-Tag: noindex). Set "indexed": true to allow indexing — only meaningful for link pages, since private/invite pages aren’t crawlable anyway.

Slugs

Each page gets a hard-to-guess slug: a readable title prefix plus a 12-character random token (e.g. q3-revenue-k3f9d2a8xq4p). For link pages the URL is the access boundary, so the random token prevents enumeration.