Menu
View as Markdown

Concepts

DocPin comes down to a handful of objects, three ways a page changes, and one way pages are served. Read this first: the rest of the docs build on it.

The objects

Workspaceacme.docpin.itholdsBoardoptional/launchgroupsPage/launch/planVersionsthe HTML you publishDataJSON you pushEntrieswhat viewers saveaccesslinks
A workspace holds pages, optionally grouped in boards. Each page has its HTML versions, its data and its entries, plus who can open it and its links.
ConceptWhat it isExample
WorkspaceYour pages, boards, members, branding and domain. An API key belongs to one workspace; an AI-app connection can use every workspace you can publish to.acme → acme.docpin.it
BoardAn optional group of pages, with its own landing page and access setting./launch
PageOne published thing at one address. Identified by its id, or by its slug plus its board./launch/plan
VersionOne publish of a page's HTML and files. Publishing the same slug again adds a version behind the same link.Version 3 of /launch/plan
Page dataOne JSON object per page that you write and the page reads.{ "revenue": 128400 }
EntriesWhat viewers save from a page: votes, RSVPs, answers, comments. Off until turned on.Sam's RSVP
AccessWho can open a page or board.team, public, password, people
MemberSomeone in the workspace. Members manage pages; viewers just open them.

Three ways a page changes

HTML (versions)Page dataEntries
Written byYou, by publishingYou, from the API, MCP or the appViewers, from the page
Write withPOST /v1/pages, publish_page, an uploadPATCH /v1/pages/{id}/data, set_page_datadocpin.shared.put / add, docpin.mine.set
The page reads it with(it is the page)docpin.data()docpin.shared.list(), docpin.mine.get()
Adds a versionYesNoNo
Who can see itAnyone who can open the pageAnyone who can open the pageShared entries: anyone who can open the page, with names only. Private objects: only their author. Your workspace sees everything, with emails
Size25 MB per upload1 MB1 MB (Free) or 10 MB (Pro) per page
DocsREST APIPage dataEntries

How a page is served

Visitoropens a linklinkDocPin pageat your link · checks access · shows the pillYour HTMLsandboxed frame on docpinusercontent.comno cookies · docpin.* added firstpostMessagerelays entries with sign-indocpin.data()Page dataread directly/_docpin/entriesEntriesstored with email
Your HTML runs in a sandboxed frame inside the DocPin page at your link. It reads page data directly; entries go through the DocPin page, which adds the viewer's sign-in.
  1. A visitor opens a link. The DocPin page answers it: it checks access (password or sign-in) and shows the DocPin pill.
  2. Your HTML loads in a sandboxed frame on its own origin. It can't read the DocPin page, its cookies or the visitor's sign-in.
  3. Before your scripts run, DocPin adds the global docpin object, syncing of ?query and #hash, and a working localStorage.
  4. docpin.data() reads page data straight from the frame's origin. Entries calls go to the DocPin page, which adds who's signed in.

The whole environment, with what works and what's blocked: How pages run.

Access

kindWho can open itPlan
teamMembers of the workspace, signed inFree
publicAnyone with the linkFree
passwordMembers, plus anyone with the passwordPro
peopleMembers, plus listed emails or @domains, once they confirm their emailPro
inheritPages only: follows its board, or a top-level page takes the workspace's defaultFree

Pages in a board follow the board unless they set their own access. New top-level pages follow the workspace's New pages start as setting (GET /v1/defaults).

Page lifecycle

publish the same slug again: new version, same linkDraftonly its authorno linksharemake draftLiveat its linkaccess decides who opens itarchiveunarchiveArchivedoff the page listlink still works
A page is a draft or live. Publishing the same slug again adds a version behind the same link, and brings an archived page back.
StateWho can open itLinkTakes entries
DraftOnly the person who made itNone; a preview link lasts an hourNo
LiveWhoever its access allowsWorksIf turned on
ArchivedWhoever its access allowsWorks; hidden from the home page, board pages and the app's page listNo
DeletedNobodyStops working. Versions, data and entries are deletedNo

Whether a new page starts as a draft or goes live is the workspace's New pages start as setting. draft: true or draft: false on publish overrides it. Making a page a draft again takes it out of its board and clears its access, so sharing it sets access afresh.

Addresses

AddressExampleNotes
Workspace linkhttps://acme.docpin.it/sales{workspace}.docpin.it/{slug}, or /{board}/{slug} in a board
Custom domainhttps://docs.acme.com/salesPro. Becomes the main link; the workspace link still works
Short linkhttps://docpin.it/Ab3dE7Never changes. The only link for unlisted pages. Case-sensitive
REST APIhttps://api.docpin.appREST API
MCP serverhttps://mcp.docpin.app/mcpMCP

Plans

FreePro ($8 a month)
Pages3 (archived ones count), plus up to 20 drafts eachUnlimited
Storage250 MB across all versionsUnlimited
Accessteam, public, secret linksAdds password and people
Custom domainYes
Page data and entriesYesYes, with higher entry limits
BrandingA logoAdds a tab icon, a share image, and clean or custom templates
Teammates1More