Skip to content

asepindrak/copy-paste-everywhere

Repository files navigation

Copy Paste Everywhere

Copy Paste Everywhere Logo

Copy Paste Everywhere Preview

Copy Paste Everywhere is a lightweight, private, and real-time clipboard synchronization tool. It allows you to sync text, images, and videos across all your devices instantly using WebSockets.

Next.js Socket.io Prisma TailwindCSS

🚀 Features

  • Real-time Sync: Instant synchronization across all connected devices using Socket.io.
  • Private & Secure: Built-in authentication with NextAuth.js. Each user has their own private clipboard history.
  • Live Editor: A simple, intuitive interface to write or paste text.
  • Image Gallery: Browse and preview copied images, then copy, download, or delete them from a dedicated gallery modal.
  • Video Support: Preview and play copied videos, with download and history tracking for video clipboard items.
  • File Gallery: Browse copied files with search, metadata badges, and one-click download/delete actions.
  • Image, Video & File Support: Paste images/videos directly or drag & drop files into the dashboard for instant clipboard syncing.
  • S3-compatible Storage: Optional file upload support for AWS S3 or S3-compatible endpoints, with backward compatibility for existing database image items.
  • Downloadable Items: Download uploaded files and videos directly from the dashboard.
  • File Metadata: File-type and file-size badges appear for uploaded files.
  • History Tracking: Keep track of your previous clipboard items.
  • Workspace Collaboration: Create workspaces, invite teammates, and sync clipboard items only within active shared workspaces.
  • One-Click Actions: "Copy All" and "Paste & Replace" buttons with visual feedback animations.
  • Modern UI: Clean, responsive dark-themed dashboard built with Tailwind CSS.

🛠️ Tech Stack

🏁 Getting Started

Prerequisites

  • Node.js 22+
  • PostgreSQL database

Installation

  1. Clone the repository

    git clone https://github.com/asepindrak/copy-paste-everywhere.git
    cd copy-paste-everywhere
  2. Install dependencies

    pnpm install
  3. Environment Setup Create a .env file in the root directory (refer to .env.example):

    DATABASE_URL="postgresql://user:password@localhost:5432/database"
    NEXTAUTH_SECRET="your-secret-key"
    NEXTAUTH_URL="http://localhost:3000"
    NEXT_PUBLIC_SOCKET_URL="http://localhost:3000"
    
    # Optional S3 settings for file uploads
    S3_BUCKET_NAME=your-bucket-name
    S3_REGION=us-east-1
    S3_ACCESS_KEY=your-access-key
    S3_SECRET_KEY=your-secret-key
    # If set, use a custom S3-compatible endpoint
    S3_ENDPOINT_URL=https://your-s3-endpoint.com
  4. Database Migration

    npx prisma generate
    npx prisma db push
  5. Run Development Server

    npm run dev

    Open http://localhost:3000 to see the application.

📦 Scripts

  • npm run dev: Starts the custom Next.js server with Socket.io support.
  • pnpm is used throughout this repository, but npm commands also work when applicable.
  • npm run build: Builds the application for production.
  • npm run start: Starts the production server.
  • npm run lint: Runs ESLint for code quality checks.

🤝 Contributing

Contributions are welcome! Feel free to open issues or submit pull requests to help improve this project.

📄 License

This project is open-source and available under the MIT License.

Packages

 
 
 

Contributors

Languages