LiveLink

Live-only encrypted file transfer for fast, private handoffs. Files move only while both peers are online.

LiveLink

About the Project

LiveLink is a live-only file transfer web app built for fast, private handoffs. A sender creates a share link and the receiver joins immediately; transfers complete only while both peers are online.

Files are end-to-end encrypted in the browser and the server only relays encrypted chunks, so content and keys are never stored.

The experience is account-free and optimized for short-lived sharing, with health checks, diagnostics, and operational visibility built in.

Key Features

  • Live-only sessions pause on disconnect and expire after a configurable grace period (TTL)
  • Link-based sharing via /r/:transferId with the share key in the URL fragment (#k=...), keeping keys off the server
  • End-to-end browser encryption with HKDF-derived AES-GCM keys; the server relays ciphertext only
  • Chunked streaming with stop-and-wait flow (single chunk in flight) and adaptive chunk sizing
  • Resume/reconnect support using resumeFromSeq to continue from the last acknowledged chunk
  • Integrity checks with SHA-256 chunk hashes and a Merkle-SHA-256 root; mismatches cancel the transfer
  • Minimal server storage with optional MongoDB metadata logging configurable via environment
  • Browser-friendly receiving with File System Access API and a bounded in-memory fallback
  • Security hardening with Helmet, CORS, request validation, Socket.IO protocol validation, and per-event rate limiting
  • Diagnostics and monitoring via /healthz, /readyz, internal stats endpoints, and an optional diagnostics UI panel
  • Observability hooks for Application Insights metrics (optional)

Screenshots

Live session view with sender and receiver status
Live session view with sender and receiver status
Zoom
Transfer diagnostics with chunk progress and health indicators
Transfer diagnostics with chunk progress and health indicators
Zoom

Technologies Used

Frontend: Angular 21 (SSR + PWA), TypeScript, RxJS, Socket.IO client
Backend: Node.js, Express 5, Socket.IO, Mongoose (optional MongoDB metadata)
Infra/DevOps: Docker, Azure App Service deployment guidance, Azure Application Insights (optional)
Security: Web Crypto API (HKDF-SHA-256, AES-GCM, SHA-256), Helmet, express-rate-limit, CORS, Zod validation