Skip to content
/ wizzit Public

P2P file transfer platform with no servers, direct peer-to-peer transfers.

License

Notifications You must be signed in to change notification settings

mesci/wizzit

Repository files navigation

Wizzit - Open Source P2P File Transfer

Wizzit Logo

Secure, Private, Direct File Transfers

License: MIT Vercel

Live SiteHow It WorksContributing GuideTURN Setup

What is Wizzit?

Wizzit is a zero-server, peer-to-peer file transfer platform that enables direct, secure file sharing between devices. Built with privacy-first principles, Wizzit never stores your files on any server.

Key Features

  • End-to-End Encryption - Bank-level security with WebRTC
  • No Server Storage - Files transfer directly between devices
  • Browser-Based - No downloads, works in any modern browser
  • Cross-Platform - Desktop, mobile, tablet compatible
  • Simple Sharing - One-click link generation
  • Beautiful UI - Clean, intuitive interface
  • Open Source - Transparent, community-driven
  • Eco-Friendly - Minimal server infrastructure

Quick Start

One-Click Deploy

Deploy your own Wizzit instance instantly:

Deploy with Vercel Deploy to Netlify

Local Development

# Clone the repository
git clone https://github.com/mesci/wizzit.git
cd wizzit

# Install dependencies
npm install

# Copy environment variables
cp env.example .env.local

# Add your TURN server credentials to .env.local
# TURN_SERVER=turn.your-server.com:3478
# TURN_SECRET=your-secret

# Start development server
npm run dev

# Open http://localhost:3000

TURN Server Setup

For production use, you MUST set up a TURN server. This is required for users behind firewalls/NATs.

Option 1: Use a Service

  • Twilio - Paid, reliable
  • Xirsys - Paid, good for WebRTC
  • Metered - Free tier available

Option 2: Self-Host with Coturn

See TURN_SERVER_CONFIG.md for detailed setup instructions.

Environment Variables

# Copy example environment file
cp env.example .env.local

# Configure your TURN server
TURN_SERVER=turn.your-server.com:3478
TURN_SECRET=your-secret-key
STUN_SERVER=stun.l.google.com:19302

How It Works

  1. File Selection: Choose files to share
  2. Link Generation: Get a unique sharing link
  3. P2P Connection: WebRTC establishes direct connection
  4. Encrypted Transfer: Files transfer directly between browsers
  5. No Storage: Files never touch our servers

Deployment

  1. Fork this repository
  2. Choose your platform:
    • Vercel (Recommended): Connect and deploy through Vercel dashboard
    • Netlify: Connect and deploy through Netlify dashboard
    • Self-Hosted: Run npm run build && npm start
  3. Add environment variables (TURN/STUN configuration)
  4. Your instance is ready!

Development

Tech Stack

  • Framework: Next.js 15 (React 18)
  • Styling: Tailwind CSS
  • WebRTC: Native browser APIs
  • Icons: Lucide React
  • TypeScript: Full type safety

Development Commands

# Development
npm run dev          # Start dev server
npm run build        # Build for production
npm run start        # Start production server

Contributing

Found a bug or have an idea? We'd love your help!

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support


Built in Turkiye

About

P2P file transfer platform with no servers, direct peer-to-peer transfers.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks