Screen recording sharing for absolutely everyone.



The self-hostable Loom alternative.
Learn more »

Uptime Github Stars Commits-per-month Pricing twitter

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



  1. Clone the repo into a public GitHub repository (or fork If you plan to distribute the code, make sure to comply with our

    git clone
  2. Go to the project folder

    cd snapify
  3. Install packages with npm

    npm i
  4. 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
      1. Open Railway and click "Start a New Project", and select Provision "MySQL".
      2. Select the MySQL App and copy the DATABASE_URL into the .env.
      Obtaining the Github API Credentials
      1. Open Github Developer Settings.
      2. Next, go to OAuth Apps from the side pane. Then click the "New OAuth App" button. Make sure to set Authorization callback URL to <Snapify URL>/api/auth/callback/github replacing Snapify URL with the URI at which your application runs.
      3. Copy the Client ID as GITHUB_ID into the .env.
      4. Next, click "Generate a new client secret" and copy the Client secret as GITHUB_SECRET into the .env.
      Obtaining the AWS S3 API Credentials
      1. Open B2 Cloud Storage Buckets.
      2. Create a new Bucket, make sure to set the bucket to private to make sure files are not being made publicly available.
      3. Copy the Endpoint as AWS_ENDPOINT and the Bucket name as AWS_BUCKET_NAME into the .env. Additionally you need to add the AWS_REGION, which is part of the endpoint and should look like this: us-east-005.
      4. Next, go to Application Keys from the side pane. Then create a new Application Key, with full read and write access to the bucket.
      5. Copy the keyID as AWS_KEY_ID and the applicationKey as AWS_SECRET_ACCESS_KEY into the .env.
  5. Set up the database using the Prisma schema

    npx prisma db push
  6. Run (in development mode)

    npm run dev


Be sure to set the environment variable NEXTAUTH_URL to the correct value. If you are running locally, as the documentation within .env.example mentions, the value should be http://localhost:3000.

# In a terminal just run:
npm run test:e2e



Deploy with Vercel


Please see our contributing guide at


Distributed under the AGPLv3 License. See for more information.