Snapify

0

Screen recording sharing for absolutely everyone.

Collaboration

Snapify

The self-hostable Loom alternative.

Learn more »


Website - Issue - Bug report

Snapify allows you to record and share recordings asynchronously:

  • Make unlimited recordings of your tab, desktop, and any application
  • Share recordings with anyone using a public link
  • Delete or un-list recordings after a specific timeframe
  • Upload and share existing videos

Development

Setup

Clone the repo into a public GitHub repository (or fork).

git clone https://github.com/MarconLP/snapify.git

Go to the project folder:

cd snapify

Install packages with yarn:

npm i

Set up your .env file:

  • Duplicate .env.example to .env
  • Use openssl rand -base64 32 to generate a key and add it under NEXTAUTH_SECRET in the .env file
  • Fill in the other variables:
    • Configure DATABASE_URL:
      • Open Railway and click "Start a New Project," and select Provision "PostgreSQL"
      • Select the Postgres App and copy the DATABASE_URL into the .env
    • Obtaining the Github API Credentials:
      • Open Github Developer Settings
      • Go to OAuth Apps from the side pane
      • Click the "New OAuth App" button
      • Set Authorization callback URL to /api/auth/callback/github replacing Snapify URL with the URI at which your application runs
      • Copy the Client ID as GITHUB_ID into the .env
      • Click "Generate a new client secret" and copy the Client secret as GITHUB_SECRET into the .env
    • Obtaining the AWS S3 API Credentials:
      • Open B2 Cloud Storage Buckets
      • Create a new Bucket, set it to private
      • Copy the Endpoint as AWS_ENDPOINT and the Bucket name as AWS_BUCKET_NAME into the .env
      • Add the AWS_REGION (e.g., us-east-005) into the .env
      • Go to Application Keys and create a new Application Key with full read and write access to the bucket
      • Copy the keyID as AWS_KEY_ID and the applicationKey as AWS_SECRET_ACCESS_KEY into the .env

Run (in development mode)

npm run dev

E2E-Testing

Make sure to set the environment variable NEXTAUTH_URL to the correct value.

In a terminal, run:

npm run test:e2e

Deployment

Vercel

Deploy with Vercel

Contributing

Please see our contributing guide at CONTRIBUTING.md

License

Distributed under the Sustainable Use License. See LICENSE.md for more information.

Company Screenshot