Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mfts/papermark
Papermark is the open-source DocSend alternative with built-in analytics and custom domains.
https://github.com/mfts/papermark
dataroom hacktoberfest next-auth nextjs open-source pdf postgresql prisma tailwindcss typescript zod
Last synced: 2 days ago
JSON representation
Papermark is the open-source DocSend alternative with built-in analytics and custom domains.
- Host: GitHub
- URL: https://github.com/mfts/papermark
- Owner: mfts
- License: agpl-3.0
- Created: 2023-05-29T20:00:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-29T10:23:34.000Z (about 1 month ago)
- Last Synced: 2024-10-29T12:18:09.717Z (about 1 month ago)
- Topics: dataroom, hacktoberfest, next-auth, nextjs, open-source, pdf, postgresql, prisma, tailwindcss, typescript, zod
- Language: TypeScript
- Homepage: https://papermark.io
- Size: 20.2 MB
- Stars: 5,419
- Watchers: 21
- Forks: 731
- Open Issues: 112
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- jimsghstars - mfts/papermark - Papermark is the open-source DocSend alternative with built-in analytics and custom domains. (TypeScript)
README
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](.github/images/papermark-welcome.gif)
## Tech Stack
- [Next.js](https://nextjs.org/) – Framework
- [TypeScript](https://www.typescriptlang.org/) – Language
- [Tailwind](https://tailwindcss.com/) – CSS
- [shadcn/ui](https://ui.shadcn.com) - UI Components
- [Prisma](https://prisma.io) - ORM [![Made with Prisma](https://made-with.prisma.io/dark.svg)](https://prisma.io)
- [PostgreSQL](https://www.postgresql.org/) - Database
- [NextAuth.js](https://next-auth.js.org/) – Authentication
- [Tinybird](https://tinybird.co) – Analytics
- [Resend](https://resend.com) – Email
- [Stripe](https://stripe.com) – Payments
- [Vercel](https://vercel.com/) – Hosting## Getting Started
### Prerequisites
Here's what you need to run Papermark:
- Node.js (version >= 18.17.0)
- PostgreSQL Database
- Blob storage (currently [AWS S3](https://aws.amazon.com/s3/) or [Vercel Blob](https://vercel.com/storage/blob))
- [Resend](https://resend.com) (for sending emails)### 1. Clone the repository
```shell
git clone https://github.com/mfts/papermark.git
cd papermark
```### 2. Install npm dependencies
```shell
npm install
```### 3. Copy the environment variables to `.env` and change the values
```shell
cp .env.example .env
```### 4. Initialize the database
```shell
npm run dev:prisma
```### 5. Run the dev server
```shell
npm run dev
```### 6. Open the app in your browser
Visit [http://localhost:3000](http://localhost:3000) in your browser.
## Tinybird Instructions
To prepare the Tinybird database, follow these steps:
0. We use `pipenv` to manage our Python dependencies. If you don't have it installed, you can install it using the following command:
```sh
pkgx pipenv
```
1. Download the Tinybird CLI from [here](https://www.tinybird.co/docs/cli.html) and install it on your system.
2. After authenticating with the Tinybird CLI, navigate to the `lib/tinybird` directory:
```sh
cd lib/tinybird
```
3. Push the necessary data sources using the following command:
```sh
tb push datasources/*
tb push endpoints/get_*
```
4. Don't forget to set the `TINYBIRD_TOKEN` with the appropriate rights in your `.env` file.#### Updating Tinybird
```sh
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 ✨