Google and Microsoft are further along on the technology, but haven’t quite figured it out yet - tie all of our products together, so we further lock customers into our ecosystem. — Steve Jobs

We may suspend or stop providing our services to you if you do not comply with our terms or policies or if we are investigating suspected misconduct. — Google

I recently set up my own Nextcloud server to synchronize contacts, calendars and files between my laptop and Android smartphone without intermediaries. Here are the client tools I used.

Contacts, Calendars, Tasks

Nextcloud uses CalDAV protocol for synching contacts, calendars and tasks.

Conveniently, macOS has built-in synching of Contacts, Calendar and Reminders apps using CalDAV. Just go to System Preferences → Internet Accounts, click Add Other Account, then add two CalDAV accounts: for calendar and contacts.

On Android, first (!) install OpenTasks and then DAVDroid (paid). Open DAVDroid and configure your account. After that OpenTasks should just work (if not, tap on menu and check that your calendar is in Displayed Lists). Note that some phones require manipulation with permissions to make it work: for example, on my Xiaomi Redmi Note 3 I had to go to Settings → Permissions, and then enable permissions for DAVDroid and also add it to Autostart.

Screenshot of macOS Reminders app with a Groceries list, which contains bread,
oreos and cat food Screenshot of Android OpenTasks app with a Groceries list, which contains bread,
oreos and cat food

Files

File synching is easy: I’ve installed the official Nextcloud client apps for macOS and Android. Both work fine, but the Android client is a bit confusing — I’m not really sure when it syncs. When I need to sync something urgently, I have to tap on menu → Synchronize.

Screenshot of macOS Finder with a folder open containing some files
      and green checks on their icons indicating that they are synched Screenshot of Nextcloud for Android a folder open containing some files

Notes

For keeping notes I first tried ownNotes, which has an Android app, but uninstalled it. If you have a note open in the web app and then edit it both on your phone and on the web, the last device to save it wins and you lose changes from the other device — it doesn’t have versions or any other conflict resolution! This is just stupid.

So, for notes I’ve decided to use QOwnNotes on my Mac and Writeily Pro on Android. They store notes in plain text files (with Markdown preview and syntax coloring), so I created Notes folder, which is synched by Nextcloud clients, and pointed the note editors to this folder. Synching is not as quick as Apple’s Notes app with iCloud, but I hope it will work well and won’t lose files. QOwnNotes is pretty ugly, but after a decade on macOS I’m beginning to prefer functional apps rather than fancy. Writeily Pro, on the other hand, has a quite nice UI.

Screenshot of QOwnNotes

Screenshot of Writeily Pro folders view Screenshot of a note open in Writeily Pro's Markdown preview Screenshot of Writeily Pro note editor

QOwnNotes froze while I was typing a huge note, and if not for my carefulness, I’d have lost it. Bugs happen, but I no longer trust this program and won’t use or recommend it. Instead, for now I’ll just stick with editing plain text notes with build-in editor in Nextcloud’s web interface or vim.

Final thoughts

This whole setup is not perfect: there are some ugly apps, sync is not instant, but it works quite okay and unlike Google’s or Apple’s “clouds” didn’t eat my data yet. I may update this post in the future as I use this setup more. If you have comments or suggestions, please contact me on Twitter — @dchest or by email.

P.S. Why you should not do it

Running your own Nextcloud instance is time-consuming: frequent updates require your constant attention, you’ll have to keep your server patched all the time, etc. It’s a full-time job, and it’s not worth your time. In fact, if we close our eyes on privacy or lock-in implications, running your own Nextcloud instance is a bad idea from the security point of view. You just can’t be as good as Google’s or Apple’s security team. Do you get notified about vulnerabilities in your server’s operating system before attackers have a chance to exploit them? Are you willing to wake up at 3am and spend your night and day patching servers? Unlikely. I do not recommend running your own Nextcloud instance if you want its contents to be safe and secure.