Mahir Faisal
All projectsCase study · 2026
Platform / productJul 2026 — ongoing

ShareFlow

Privacy-first file transfer, 39+ utilities and a digital store — all on the edge.

Role
Solo full-stack developer & designer
Stack
11 tools
shareflow.mhr3d.online
ShareFlow homepage with a large file-transfer panel and a light blue interface.
Live interface

Overview

ShareFlow is a zero-login file and secret-sharing platform built around a simple promise: your file should reach the other person without taking up permanent residence on someone else's server. It combines direct browser-to-browser transfer over WebRTC with ephemeral text sharing, a suite of 39+ developer utilities, and a small digital store — all shipped on Cloudflare's edge.

The problem

Most file-transfer tools trade privacy for convenience. You create an account, upload a file, wait for a server to process it, and hope the link expires when it says it will. ShareFlow explores the opposite shape: open the page, send the file, and keep the bytes between the two browsers whenever that is possible.

What I built

The product, piece by piece.

  • 01

    Direct browser-to-browser transfer

    WebRTC data channels move files between peers without a permanent copy being stored. A self-hosted signalling layer handles the handshake.

  • 02

    Links for when P2P is not enough

    Optional cloud-backed sharing uses Cloudflare R2, Supabase and Upstash Redis so a transfer can survive a closed tab or a restrictive network.

  • 03

    Self-destructing text shares

    Code snippets, credentials and notes can be shared with view limits and expiry timers instead of being left in a chat history.

  • 04

    39+ developer utilities

    JSON formatting, JWT decoding, regex testing, Base64, UUIDs, image compression, PDF merging and more, grouped into one consistent tool surface.

  • 05

    A store with an honest unlock loop

    Rewarded-ad steps mint one-time 100% off coupons for starter kits and datasets, with the product catalogue living alongside the utilities.

The hard parts

Challenges & decisions.

01

Signalling without a room server

WebRTC needs the two peers to exchange offer, answer and ICE candidates before the data channel exists. I built the signalling flow on edge functions and designed explicit waiting, failure and retry states so a blocked connection never looks like a frozen page.

02

Large files in a browser tab

A browser cannot buffer an unlimited file in memory. The transfer flow chunks data, surfaces progress and supports cancellation, while keeping the UI responsive. The fallback path to object storage has to preserve the same clarity about where a file actually is.

03

One voice across 39 tools

A utility suite can easily become a pile of unrelated pages. Each tool shares the same layout, input states, copy actions, empty states and dark/light tokens, with route-level splitting so the home page does not carry the whole suite.

04

Privacy claims that match the architecture

P2P and cloud storage have different privacy properties. The interface makes that distinction visible instead of hiding it behind a single 'secure' badge, so users know whether a file is travelling directly or being retained.

What's next

Potential improvements.

  • Add a TURN relay fallback for symmetric NATs and restrictive corporate networks.
  • Introduce resumable transfers and an opt-in, locally stored transfer history.
  • Cover the signalling state machine and tool routes with end-to-end tests.
  • Run a full accessibility and performance audit across all 39 tools.
  • Turn the most-used utilities into an installable PWA with offline support.
  • Add observability for transfer failures without collecting file contents.

Want to work on something like this?

Start a conversation