Papermark is an open-source document sharing alternative to DocSend with built-in analytics. Built with Vercel Storage and Vercel Edge Functions.
- Shareable Links: Share your document securely by sending a custom link
- Analytics: Get insights via document tracking and soon page-by-page analytics
- Self-hosted, open-source: Host it yourself and hack on it
- Next.js – framework
- Typescript – language
- Tailwind – styling
- Prisma - orm
- Vercel Blob - blob storage
- Vercel Postgres - database
- NextAuth.js – auth
- Resend – email
- Vercel – hosting
Here's what you need to be able to run Papermark:
- Node.js (version >= 18)
- PostgreSQL (I use Vercel Postgres)
- Blob storage (I use Vercel Blob)
- Google OAuth Client (for authentication)
- Resend (for sending emails)
git clone https://github.com/mfts/papermark.git
cd papermark
npm install
cp .env.example .env
Variable | Value |
---|---|
NEXTAUTH_SECRET | a random string |
NEXTAUTH_URL | < Your base doamin or localhost:3000 > |
POSTGRES_PRISMA_URL | < Vercel Postgres Pooling URL > |
POSTGRES_URL_NON_POOLING | < Vercel Postgres Non-Pooling URL > |
BLOB_READ_WRITE_TOKEN | < Vercel Blob Token > |
GOOGLE_CLIENT_ID | < Google Client ID > |
GOOGLE_CLIENT_SECRET | < Google Client Secret > |
RESEND_API_KEY | < Resend API KEY > |
NEXT_PUBLIC_BASE_URL | < Your base domain or localhost:3000 > |
npx prisma generate
npx prisma db push
npm run dev
Visit http://localhost:3000 in your browser.
All you need is a Vercel account and access to Vercel Storage (Blob and Postgres). Click the button below to clone and deploy:
Papermark is an open-source project and we welcome contributions from the community.
If you'd lik 60A0 e to contribute, please fork the repository and make changes as you'd like. Pull requests are warmly welcome.
...and friends
- Dub - An open-source link shortener SaaS with built-in analytics + free custom domains