Draft vs. published
Every page has two versions:| Description | |
|---|---|
| Draft | Your working copy. Updating a page’s HTML changes the draft only. |
| Published | What visitors actually see at the page’s URL. |
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 theaccess field:
No sign-in required. Anyone who has the URL can view. This is the default for published pages.
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.Only the owner can open the page.
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).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 withX-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.