How I Use Resilio Sync as a Software Developer

Friday, March 17, 2017 3 minute read

Resilio Sync (née BT Sync) is a file-sync application that has given me complete peace-of-mind with my code and data, thanks to a clever little file that lets me ignore certain folders.

I've tried a number of cloud sync providers over the years: Dropbox, OneDrive, Copy (RIP), Mega, Creative Cloud, Amazon Cloud Drive to name a few. Capacity isn't really my issue with any of them. I have 1TB of OneDrive through Office 365, 20GB of Creative Cloud Files with my Adobe sub, and another 1 TB of space in Dropbox, and they're all more than enough. My issue with all of them is that they have one major weakness: the node_modules folder.

These programs go absolutely bonkers when you npm install in a folder they're watching. You'll immediately get a flurry of errors about tmp files and sync conflicts. For some reason, not a single one of them has a .gitignore-style setting that can solve this. Surely, somebody must have figured this out by now.

Resilio Sync

Resilio Sync is a little different, in that it doesn't have a cloud provider powering it. You set it up on your machines, and they sync with each other. While that alone gives me some peace-of-mind, the real killer feature here is a little hidden file Resilio creates called IgnoreList.

You can find IgnoreList in the folder named .sync at the top-level of the folder you're sharing (you may need to enable viewing of hidden files if you don't see it). You can edit that file with a text editor and treat it just like a .gitignore.

Keep in mind, you'll need to edit that file on each of your computers. Personally, the most useful lines I've found to add are node_modules and bower_components.

My Setup

You can buy a premium subscription and just have one folder with selective sync, but I prefer the control of setting up a new key for each folder. I've got one for my code, one for documents, one specifically for my academic work, one for freelance work, etc. On my small NAS I have a key file with all the share codes, so if I bring in a new device I can get it connected in no time.

I have a micro-server that runs 24/7 and two desktops that I sleep when not in use. They host all of the shared folders on their huge internal drives, while my laptops and portable devices selectively choose which folders they need. My laptops don't need my music, photos, or videos (thanks to my Plex Media Server), so they don't sync those folders. My portable devices, however, do need to sync with the photos folder every time I take a picture. The freedom to do this is fantastic!

Final Thoughts

  • Adobe's Creative Cloud Files has the draw of awesome support for previewing/editing their files directly in the browser, but the sync client is the worst I've ever used. I hate hate hate hate hate it.
  • Microsoft's OneDrive is very practical when you add in Office Online, which even has a solid text editor for programming in the browser, but I've vowed to stop using it due to the ads it places in Windows Explorer.
  • Dropbox is fine. They're the only provider to offer a Linux client now that Copy is gone. Their whole business is sync, so they tend to do it right.
  • Question: Is there a self-hosted sync application that also has a browser application?