Skip to content

Premshaw23/fluxdrop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 

Repository files navigation

FluxDrop 🚀

FluxDrop Banner

Instant, private, cross-device file sharing through your browser.
Powered by WebRTC, Next.js, and End-to-End Encryption.

Next.js TypeScript WebRTC Tailwind


🚀 What is FluxDrop?

FluxDrop is a browser-based, peer-to-peer file transfer system. No accounts, no installation, no storage—just instant, encrypted transfers between any devices. It uses WebRTC for direct data channels and ECDH Key Exchange to ensure only you and the receiver can access the files.


✨ Key Features

  • Zero Setup: No accounts or apps needed. Just open the browser and share.
  • 🔒 Maximum Privacy: End-to-end encrypted. No file data ever touches our server.
  • 🚀 LAN Speed: Direct P2P transfers mean data moves as fast as your network allows.
  • 📱 Universal: Works on any modern browser across mobile, tablet, and desktop.
  • 🔗 Easy Pairing: Use 6-digit codes, QR codes, or direct links to connect peers.

🛠 Technical Stack

Frontend Backend (Signaling) Infrastructure
Next.js 14 (App Router) Node.js 20 (TypeScript) Vercel (Frontend)
Tailwind CSS ws (WebSocket) Railway (Backend)
Zustand (State Management) Upstash Redis (Session) Metered.ca (TURN/STUN)
WebCrypto API (AES-GCM) Zod (Validation)

📁 Project Structure


🚀 Quick Start (Development)

1. Clone the repository

git clone https://github.com/Premshaw23/fluxdrop.git
cd fluxdrop

2. Setup Signaling Server

cd fluxdrop-server
npm install
npm run dev

3. Setup Web Frontend

cd ../fluxdrop-web
npm install
npm run dev
# Open http://localhost:3000

📖 Documentation

For more detailed technical information, check the sub-folder documentation:


🚀 Deployment Guide

  • Frontend: Deploy fluxdrop-web to Vercel.
  • Backend: Deploy fluxdrop-server to Railway.
  • Redis: Use Upstash Redis for ephemeral session storage.
  • TURN: Configure Metered.ca for network traversal (Symmetric NAT handles).

⚠️ Known Limitations

  • Safari Support: Folder uploads are limited due to WebKit restrictions.
  • File Size: Most browsers have a ~2GB memory limit for blob handling.
  • Persistence: No transfer history is saved to ensure maximum privacy.

Philosophy: "Be the best at one thing—instant, private file transfer."

About

FluxDrop is a browser-based, peer-to-peer file transfer system. No accounts, no installation, no storage—just instant, encrypted transfers between any devices. It uses WebRTC for direct data channels and ECDH Key Exchange to ensure only you and the receiver can access the files.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages