dev-tools 3 min read

Papermark – Open-Source DocSend Alternative

Papermark is an open-source document-sharing platform with real-time analytics, custom domains, and self-hosting. Built on Next.js and PostgreSQL.

By
Share: X in
Papermark product thumbnail

TL;DR

TL;DR: Papermark is an open-source document-sharing platform that replaces DocSend with real-time analytics, custom domain support, and a full self-hosting option.

Source and Accuracy Notes

  • Project page: papermark.io — verified Aug 2026
  • Source repository: github.com/mfts/papermark — verified Aug 2026
  • License: AGPL-3.0 (NOASSERTION on GitHub API, the project docs show AGPL-3.0 badge) — verified via LICENSE file
  • HN launch thread: news.ycombinator.com/item?id=37984167 — “Show HN: Papermark – the open-source DocSend alternative with custom domains”

What Is Papermark?

Papermark is an open-source document-sharing platform that competes directly with DocSend. According to the project docs, it is “the open-source document-sharing alternative to DocSend, featuring built-in analytics and custom domains.”

The project launched on Product Hunt and crossed 1,000 GitHub stars within its first month, with over 10 contributors on GitHub as of the HN launch announcement.

Key features (from the README):

  • Shareable Links — share documents securely with a custom link
  • Custom Branding — add a custom domain and your own branding
  • Analytics — gain insights through document tracking with page-by-page analytics coming soon
  • Self-hosted, Open-source — host it yourself and customize as needed

Tech Stack

According to the project docs, Papermark uses:

  • Next.js — framework
  • TypeScript — language
  • Tailwind — CSS
  • shadcn/ui — UI components
  • Prisma — ORM
  • PostgreSQL — database
  • NextAuth.js — authentication
  • Tinybird — analytics
  • Resend — email
  • Stripe — payments
  • Vercel — hosting

Setup Workflow

Prerequisites

To self-host Papermark, you need:

  • Node.js (version 18.17.0 or higher)
  • PostgreSQL database
  • Blob storage (AWS S3 or Vercel Blob)
  • Resend account (for sending emails)

Step 1: Clone the Repository

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

### Step 2: Install Dependencies

```bash
npm install
```bash

### Step 3: Configure Environment Variables

```bash
cp .env.example .env
```bash

Then edit the `.env` file with your specific values for the database connection, blob storage, Resend API key, and other required services.

### Step 4: Initialize the Database

After configuring the environment variables, initialize the PostgreSQL database using Prisma:

```bash
npx prisma db push
```bash

### Step 5: Run the Dev Server

```bash
npm run dev

Step 6: Open the App

Navigate to http://localhost:3000 after starting the dev server.

Practical Evaluation Checklist

  • GitHub stars: 8,912 (verified via GitHub REST API)
  • Forks: 1,344
  • License: AGPL-3.0
  • Last push: 2026-08-11
  • Self-hostable: Yes — full source available
  • Custom domains: Yes — documented in README
  • Analytics: Yes — built-in document tracking

FAQ

Q: Can I use Papermark for commercial purposes? A: The project is AGPL-3.0 licensed. Commercial use is permitted under AGPL-3.0 terms. Note that portions under the ee/ directory use a separate commercial license.

Q: Does Papermark support page-by-page analytics? A: Document-level tracking is available. Page-by-page analytics are listed as “coming soon” in the README.

Q: What blob storage options are supported? A: AWS S3 and Vercel Blob are currently supported for document storage.

Q: Is there a hosted version? A: Yes — papermark.io offers a hosted version. Self-hosting is available using the open-source codebase.

Conclusion

Papermark fills a clear gap for teams that want DocSend-like document sharing analytics without the vendor lock-in. With 8,900+ stars, active development, and a clean AGPL-3.0 license, it is a credible option for teams that need secure document sharing with custom branding and self-hosting flexibility.

For a detailed walkthrough of the setup, visit the GitHub repository README.