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
hacktoberfest nextjs typescript
Last synced: 5 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 (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-31T14:53:44.000Z (21 days ago)
- Last Synced: 2024-06-06T02:31:56.540Z (16 days ago)
- Topics: hacktoberfest, nextjs, typescript
- Language: TypeScript
- Homepage: https://papermark.io
- Size: 17.7 MB
- Stars: 2,522
- Watchers: 13
- Forks: 285
- Open Issues: 59
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Lists
- jimsghstars - mfts/papermark - Papermark is the open-source DocSend alternative with built-in analytics and custom domains. (TypeScript)
- my-awesome-stars - mfts/papermark - Papermark is the open-source DocSend alternative with built-in analytics and custom domains. (TypeScript)
- my-awesome-stars - mfts/papermark - Papermark is the open-source DocSend alternative with built-in analytics and custom domains. (TypeScript)
- awesome - mfts/papermark - Papermark is the open-source DocSend alternative with built-in analytics and custom domains. (TypeScript)
- awesome-tinybird - Papermark - source alternative to DocSend (Open-source Projects 🔓)
- awesome-stars - mfts/papermark - `★2649` Papermark is the open-source DocSend alternative with built-in analytics and custom domains. (TypeScript)
- awesome-stars - mfts/papermark - Papermark is the open-source DocSend alternative with built-in analytics and custom domains. (TypeScript)
- awesome-stars - papermark - source DocSend alternative with built-in analytics and custom domains. | mfts | 2588 | (TypeScript)
- awesome-stars - papermark - source DocSend alternative with built-in analytics and custom domains. | mfts | 2671 | (TypeScript)
- awesome-stars - papermark - source DocSend alternative with built-in analytics and custom domains. | mfts | 2690 | (TypeScript)
README
Papermark is the open-source document sharing alternative to DocSend with built-in analytics and custom domains.
## Features
- **Shareable Links:** Share your document securely by sending a custom link
- **Custom Branding:** Add a custom domain and your own branding
- **Analytics:** Get insights via document tracking and soon page-by-page analytics
- **Self-hosted, open-source:** Host it yourself and hack on it## 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
- PostgreSQL - 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 be able to run Papermark:
- Node.js (version >= 18)
- 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
npx prisma generate
npx prisma migrate deploy
```### 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 my 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 datasources 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 changes as you'd like. Pull requests are warmly welcome.
### Our Contributors ✨