Sharing a big, sensitive file with someone nearly 5,000 miles away

I needed to get a large, sensitive PDF from my mom who is roughly 5,000 miles away. I didn’t really want it sitting in either of our mailboxes or on a mail server somewhere, and it was probably too big for email. I decided to work with her to set up Beaker so that she could do a peer-to-peer transfer with me over Dat.

I considered a few other options first. Dropbox could work, she has it and knows how to use it. But I recently scrubbed Dropbox from my life and would like to avoid it if possible. WeTransfer could be good. I could just send her a download link and avoid setting up any new software. But even though WeTransfer has a reasonable security statement, it feels like a sub-par sharing platform for sensitive docs. The Keybase filesystem could be good, she wouldn’t mind getting new software if required. But I’d rather avoid making her set up a whole new account and profile for something she might only use once.

Enter Dat. We could have used Dat on the command line to get this done, but we decided to use Beaker instead so that she could work with a GUI. She’s tech-savvy, but the command line would probably be a bit too forbidding!

Beaker browser has some good documentation on how to use Beaker to share files with Dat. Here is a list of steps from our perspective for future reference if we decide to share files with Beaker again. These steps assume that both the sharer and the recipient already have Beaker installed on their respective computers.

  1. Sharer opens up Beaker on their computer and then publishes a new Dat website containing the files they want to share. To create a new website, click the Beaker menu icon in the upper-right and then click “Create new”. Next, either:
    • Click “From folder” to select a folder on your computer that contains the files, or
    • Click “Empty project” to create a new empty website and then import the files. Import the files by clicking the plus button at the top right of the file list

    This step creates .datignore (hidden) and dat.json files within this folder so that the site settings are saved and the site can be shared via Dat protocol.

  2. Sharer reviews and publishes changes to make the files in the folder available on their website.
  3. Sharer opens the website with the recipient by clicking the “Share” button in the upper-right of the window and then clicking “Open”. The sharer then shares the website they’ve created with the recipient by sending them URL. The URL should begin with dat://, indicating that it is being shared via the Dat protocol. The rest of the URL is a hash, a jumble of letters and numbers that points to the sharer’s new website. The sharer should send the URL to the recipient using their preferred privacy-first messaging app.
  4. Recipient opens the dat:// URL in Beaker and should be able to see the files that are being shared. If the URL opens but only has .datignore and dat.json files present, the sharer might still have to publish changes. If the URL won’t open it at all, the sharer might need to open their new website in Beaker browser so that they’re seeding the site and the recipient can see it.
  5. Once the recipient has successfully opened the URL, they should seed this website if they want to be able to access it permanently even when the sharer is not online. To seed a website, the recipient should click the share icon to the right of the URL in the Beaker address bar and then toggle “Seed this site’s files”.

In hindsight I actually think that the command line might be a bit clearer, I think that creating a whole website in order to share files may have been confusing. But overall it suited our needs. It was a super fast transfer, we didn’t have to get any middleman involved, and we were able to tear the whole thing down easily a few moments later.