Tracked links in place of email attachments, DocSend-style
Papermark sends a document as a link rather than an attachment. The recipient reads it in the browser, and the sender sees each visit along with the time spent on every page. The README calls the project "the open-source DocSend alternative", with built-in analytics and custom domains. The app is written in TypeScript on Next.js, with PostgreSQL and Prisma. Papermark, Inc. also sells a hosted version, starting with a free plan.
Per-page read times and per-link gatekeeping
- Read time per page: analytics split each visit page by page, and the pricing page includes them on every plan, the free one too.
- Several links per document: each link has its own password, expiry date, and allow and deny lists of addresses or domains. By default, a new link asks for the viewer's email and blocks downloads; email verification is a separate switch.
- Terms, watermark and screenshot protection: a link can require viewers to accept terms first, such as an NDA, stamp a watermark on the pages, and turn on screenshot protection.
- Data rooms: documents filed in folders behind a single link. Since v0.22.0 the index numbers itself from the order of folders and subfolders.
- Sender's domain and branding: documents load under the sender's own domain, logo and brand color.
- Slack alerts: v0.22.0 posts to a Slack channel each time someone views a document or a data room.
Commercial ee/ folder, reading stats stored in Tinybird
Not all of the code is AGPL. The LICENSE file puts the repository under AGPLv3 except for the ee/ and app/(ee) folders, which fall under Papermark's commercial license: running that code in production requires an Enterprise subscription, while development and testing need none. The ee/ README lists data rooms, Q&A conversations and advanced permissions among that edition's features. GitHub matches no standard license in the file and reports NOASSERTION.
Self-hosting depends on hosted services. The README asks for PostgreSQL, S3 or Vercel Blob storage, and Resend for email. .env.example goes further: Tinybird, where the reading events behind the analytics are written and queried; Upstash QStash, marked as required for queues and background jobs; and Trigger.dev. Custom domains get registered through the Vercel API. The repository has no Dockerfile and no Compose file.
The website puts data rooms ahead of the DocSend comparison. Its homepage describes Papermark as a virtual data room and document sharing platform for M&A, fundraising and due diligence. The "Who it's for" list starts with founders raising Seed to Series C and with venture capital and private equity funds, and ends with sales teams sending proposals and pitch decks.
The latest release is v0.22.0, published on December 6, 2025. The project is still on 0.x. Ten releases came out between June 2024 and December 2025, spaced three weeks to four months apart, and none has followed. Work goes on in main, where the last commit is dated August 28, 2026. The README lags behind the code: it still lists page-by-page analytics as coming "soon", although the repository already holds the Tinybird queries that compute them, and it asks for Node.js 18.17 where package.json requires Node 24.
