A few years ago I was in the position of needing a solution to backup and sync dotfiles (configuration files for various pieces of software) across my machines.
Specifically, I had Mac computers and Linux servers, and needed a way to nicely keep these files up-to-date between them. For example, I may have spent some time crafting and tweaking files - such as my .vimrc
and .tmux.conf
- and needed a way of ensuring all of my devices could access the latest version of these files.
A few other tools exist for this - such as Mackup and homesick - but I wanted something quick and easy to get off the ground and distribute to other machines. Preferably a single binary.
This gave me the idea for Dotty - a hosted manager for dotfile-syncing across devices. It allows for downloading a single binary (pre-compiled for Linux and MacOS devices), from which one can login and pull/push configuration files as needed.
The service also exposes a RESTful HTTP API for integrating into other workflows. Both the client and the backend are written in Go, and backed by a MongoDB database.
Whilst I try to maintain Dotty when I can, and keep the service running for those who still use it, I personally don’t use it anymore and so do not plan to add additional features. These days, I think tools like Syncthing and Nextcloud offer more robustness, security, and flexibility, and I prefer using these for ease of use.