Papermark is the open-source document-sharing alternative to DocSend, featuring built-in analytics and custom domains.
- 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.
 
- 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
 
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)
 
git clone https://github.com/mfts/papermark.git
cd papermarknpm installcp .env.example .envnpm run dev:prismanpm run devVisit http://localhost:3000 in your browser.
To prepare the Tinybird database, follow these steps:
- We use 
pipenvto manage our Python dependencies. If you don't have it installed, you can install it using the following command:pkgx pipenv
 - Download the Tinybird CLI from here and install it on your system.
 - After authenticating with the Tinybird CLI, navigate to the 
lib/tinybirddirectory:cd lib/tinybird - Push the necessary data sources using the following command:
tb push datasources/* tb push endpoints/get_*
 - Don't forget to set the 
TINYBIRD_TOKENwith the appropriate rights in your.envfile. 
pipenv shell
## start: pkgx-specific
cd ..
cd papermark
## end: pkgx-specific
pipenv update tinybird-cliPapermark 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.