Secure P2P File-Sharing Platform
Platform | Documentation | API | Community
Rapidly is an open-source platform for secure peer-to-peer file sharing, paid digital content distribution, and encrypted secret exchange. Files transfer directly between browsers using WebRTC: no server ever sees your data.
- Share files peer-to-peer: encrypted transfers happen directly in your browser, with no size limits and zero server storage
- Monetise shares with built-in Stripe Connect payments: set a price and get paid instantly
- Exchange secrets (API keys, credentials, tokens) via encrypted, self-destructing links
- Manage access with organisation-level controls, customer portals, and webhook delivery
| Traditional tools | Rapidly | |
|---|---|---|
| File sharing | Upload → paste link → hope for the best | P2P in your browser: AES-256 encrypted, no server storage, expiring links, download quotas |
| Sharing secrets | Slack DM / email (!) | Encrypted, one-time-view links with audit trail |
- Python 3.14+ and uv
- Node.js 24+ and pnpm
- Docker
# 1. Clone and configure
git clone https://github.com/rapidly-tech/rapidly.git
cd rapidly
./dev/setup-environment
# 2. Start infrastructure (Postgres, Redis, Minio)
cd server
docker compose up -d
# 3. Backend API (http://127.0.0.1:8000)
uv sync
uv run task db_migrate
uv run task api
# 4. Frontend (http://127.0.0.1:3000) : in a new terminal
cd clients
pnpm install
pnpm devTip: For a fully containerised setup with hot-reload, run
dev docker upfrom the repo root. SeeDEVELOPMENT.mdfor details.
Rapidly is a monorepo with a Python/FastAPI backend and a Next.js frontend, connected by a generated TypeScript API client.
rapidly/
├── server/ # Python backend
│ ├── rapidly/ # Application modules
│ │ ├── file_sharing/ # File sharing & WebRTC signalling
│ │ ├── storefront/ # Public share pages
│ │ ├── auth/ # Authentication (OAuth, magic links)
│ │ ├── organization/ # Multi-tenant organisation layer
│ │ └── ... # Products, webhooks, notifications, etc.
│ ├── migrations/ # Alembic database migrations
│ └── docker-compose.yml # Dev infrastructure
├── clients/
│ ├── apps/web/ # Next.js dashboard & public pages
│ └── packages/
│ ├── ui/ # Shared component library (Tailwind)
│ ├── client/ # Generated API client
│ └── customer-portal/ # Embeddable customer portal SDK
└── dev/ # Developer tooling & scripts
| Layer | Stack |
|---|---|
| API | FastAPI, SQLAlchemy, Pydantic, Dramatiq (workers) |
| Database | PostgreSQL 16, Redis |
| Storage | Cloudflare R2 (S3-compatible, Minio locally) with ClamAV scanning |
| Frontend | Next.js 15, TypeScript, TanStack Query, Tailwind CSS |
| Payments | Stripe Connect |
| Real-time | WebRTC (peer-to-peer file transfers), Server-Sent Events |
- Free for file sharing and secret exchange
- 5 % platform fee on paid shares (via Stripe): no monthly costs
- See the fee schedule for full details
We welcome contributions of all kinds: bug reports, feature requests, docs improvements, and code.
- Read
DEVELOPMENT.mdfor environment setup - Check open issues or propose a new one
- Fork, branch, and open a pull request
Found a vulnerability? Please disclose it responsibly: see SECURITY.md.
- Reddit: questions, ideas, and chat
- GitHub Discussions: longer-form conversations
- X: announcements
Licensed under the Apache License 2.0.