Papermark is a free, open source document management & e-signatures project written in TypeScript and released under a custom open-source licence. It has 9,181 GitHub stars, 1,396 forks and 239 open issues, and was last pushed 20 days ago. On this registry it ranks #4 of 18 tracked projects in Document Management & E-Signatures, with 5 head-to-head comparisons available. It gained 20 stars over the last 6 tracked days.

What is Papermark?

What it is

Papermark open-source document-sharing alternative to DocSend. Project lives in Next.js/TypeScript web stack, category Business Software / Document Management & E-Signatures. GitHub metadata: 9166 stars, 1392 forks, 239 open issues, last push 2026-08-28T15:58:25Z. README says built-in analytics and custom domains. It is self-hosted, open-source, and customizable as needed. License field says NOASSERTION, so license terms need separate check.

It solves paid SaaS lock-in for secure document links: user hosts own app, uses own database, own blob storage, own email service, own analytics backend. It lets user send custom link for document, add own domain and branding, track document views.

Key capabilities

  • Share documents through custom secure links, with PDF and dataroom topics indicating document-centric use.
  • Add custom domain and branding to viewer-facing pages.
  • Gain insights through document tracking; page-by-page analytics listed as soon.
  • Self-hosted app built with Next.js, TypeScript, Tailwind, shadcn/ui, and Prisma.
  • Store app data in PostgreSQL through Prisma, authenticate through NextAuth.js.
  • Send email through Resend, process payments through Stripe, host through Vercel, store files in AWS S3 or Vercel Blob.

Who uses it and how

  • Teams replace DocSend for PDF and dataroom-style document sharing.
  • Self-hosters deploy Next.js app against PostgreSQL, S3 or Vercel Blob, Resend, Tinybird.
  • Developers customize viewer pages, data model, and self-hosted app using Next.js, TypeScript, Prisma, Tailwind, shadcn/ui.
  • Operators push Tinybird datasources and endpoints, then set TINYBIRD_TOKEN for analytics collection.
  • Users create shareable links, attach custom branding, and inspect document tracking data.

Getting started

Clone repo, npm install, copy .env.example to .env, run npm run dev:prisma, run npm run dev, open http://localhost:3000; prerequisites include Node.js version >= 18.17.0, PostgreSQL, AWS S3 or Vercel Blob, and Resend. Tinybird setup uses pipenv, Tinybird CLI, tb push datasources/, tb push endpoints/get_, and TINYBIRD_TOKEN; README also mentions Vercel hosting and contributing by fork plus pull request.

When to use it — and when not to

Use Papermark when DocSend replacement and self-hosted control matter. Avoid it when managed-only, no ops, or current page-by-page analytics required. Self-hoster must operate PostgreSQL, blob storage, Resend email, Tinybird analytics, and Node.js app; Stripe and Vercel also appear in stack. Facts show weakness: page-by-page analytics soon, contributors 0, 239 open issues, repo age 0 years, license NOASSERTION. README lists clone/npm path and Vercel hosting, not Docker image names or hosted option.

project readme (upstream, from github) — read inline

Papermark

The open-source DocSend alternative.

Papermark - The open-source DocSend alternative | Product Hunt

papermark.com


GitHub Repo stars Twitter Follow License


Papermark is the open-source document-sharing alternative to DocSend, featuring built-in analytics and custom domains.

Features

  • Shareable Links: Share your documents securely by sending a custom link.
  • Custom Branding: Add a custom domain and your own branding.
  • Analytics: Gain insights through document tracking and soon page-by-page analytics.
  • Self-hosted, Open-source: Host it yourself and customize it as needed.

Demo

Papermark Welcome GIF

Tech Stack

Getting Started

Prerequisites

Here's what you need to run Papermark:

  • Node.js (version >= 18.17.0)
  • PostgreSQL Database
  • Blob storage (currently AWS S3 or Vercel Blob)
  • Resend (for sending emails)

1. Clone the repository

git clone https://github.com/mfts/papermark.git
cd papermark

2. Install npm dependencies

npm install

3. Copy the environment variables to .env and change the values

cp .env.example .env

4. Initialize the database

npm run dev:prisma

5. Run the dev server

npm run dev

6. Open the app in your browser

Visit http://localhost:3000 in your browser.

Tinybird Instructions

To prepare the Tinybird database, follow these steps:

  1. We use pipenv to manage our Python dependencies. If you don't have it installed, you can install it using the following command:
    pkgx pipenv
    
  2. Download the Tinybird CLI from here and install it on your system.
  3. After authenticating with the Tinybird CLI, navigate to the lib/tinybird directory:
    cd lib/tinybird
    
  4. Push the necessary data sources using the following command:
    tb push datasources/*
    tb push endpoints/get_*
    
  5. Don't forget to set the TINYBIRD_TOKEN with the appropriate rights in your .env file.
Updating Tinybird
pipenv shell
## start: pkgx-specific
cd ..
cd papermark
## end: pkgx-specific
pipenv update tinybird-cli

Contributing

Papermark is an open-source project, and we welcome contributions from the community.

If you'd like to contribute, please fork the repository and make any changes you'd like. Pull requests are warmly welcome.

Our Contributors ✨

Frequently asked questions

Is Papermark free to use?

Papermark is open source. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Papermark do?

Open-source document sharing with powerful analytics

What is Papermark written in?

Papermark is primarily written in TypeScript. Its source is publicly available at https://github.com/mfts/papermark, and it has 9,181 GitHub stars.