In the past year or two, I have been attempting to improve the environment I do most of my writing in.

The starting point for all of this work is the irreplaceable, magical syncthing

Syncthing

No description given.

As someone a bit obsessed with control over how my data is used and stored, I have never been particularly fond of any cloud-based storage. As the saying goes, the cloud is just someone else’s computer. I want to keep my data on my computers, and in the past this was an often tedious process, fighting with rsync or some similar solution. syncthing manages to do everything I need it to–in effect, syncthing simply shares selected folders across authorized devices. When installed across all of my devices (including, even, my phone), I have a simple private cloud. Even the content for my humble site is being synced across various devices.

While I realize not everyone is likely to care about this, I like that I can leverage the too many devices I have as multiple points of failure for my most important data. As well, this eliminates the need for something like Dropbox or anything similar. Not only am I unlimited in the amount of data I can sync, but I know exactly how and where that information is being transmitted. Of course, it helps too that syncthing is open source.

All syncthing requires you to do is to tell it what directory you want to share, then which devices to share it with. Each device has a unique identifying code, which syncthing can detect on your local network, or it can scan with a QR code. Once a device is added, you simply accept the shared folder on your device and syncthing handles the rest. This is where the magic really happens, as syncthing will work silently in the background to make sure that all devices are in sync, a process that typically takes seconds (since I am mostly syncing relatively small amounts of text).

Since this syncing occurs peer-to-peer, both devices need to be turned on for syncthing to work. Initially I thought this might be a pain point, in case I left a computer off at home while working in my office, but syncthing also implements an “untrusted device” feature which allows me to store my shared files encrypted-at-rest on a remote server. Since I keep a remote server always on, I can easily sync across devices at all times. If that’s not enough, the mobile client for syncthing means my phone can act as a mobile sync point for all the content I’m sharing, making it easy to sync across devices I might not always have turned on (since, sadly, the phone is always on). Even better: syncthing can restrict its syncing to specific Wi-Fi networks, meaning I’m not sending any data over my mobile data plan or on public Wi-Fi (of course, the data is encrypted during transfer, but this is still a cool feature).

While this is not an advertisement for syncthing, if you are particularly interested in maintaining control over your data, it can’t be beat.