@inproceedings{kleppmann2019localfirst, author = {Kleppmann, Martin and Wiggins, Adam and van Hardenberg, Peter and McGranaghan, Mark}, title = {Local-first software: you own your data, in spite of the cloud}, booktitle = {Proceedings of the 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software}, pages = {154--178}, year = {2019}, publisher = {Association for Computing Machinery}, doi = {10.1145/3359591.3359737}, url = {https://doi.org/10.1145/3359591.3359737} } @software{selfhostedlivesync1046, author = {{vorotamoroz} and {Self-hosted LiveSync Contributors}}, title = {vrtmrz/obsidian-livesync: 1.0.46}, version = {1.0.46}, year = {2026}, publisher = {GitHub}, url = {https://github.com/vrtmrz/obsidian-livesync/releases/tag/1.0.46} } @software{selfhostedlivesync, author = {{vorotamoroz} and {Self-hosted LiveSync Contributors}}, title = {vrtmrz/obsidian-livesync: 1.0.38}, version = {1.0.38}, year = {2026}, publisher = {Zenodo}, doi = {10.5281/zenodo.23438598}, url = {https://doi.org/10.5281/zenodo.23438598} } @software{commonlib, author = {{vorotamoroz} and {livesync-commonlib Contributors}}, title = {vrtmrz/livesync-commonlib: 0.1.19}, version = {0.1.19}, year = {2026}, publisher = {Zenodo}, doi = {10.5281/zenodo.22074979}, url = {https://doi.org/10.5281/zenodo.22074979} } @software{commonlib040, author = {{vorotamoroz} and {livesync-commonlib Contributors}}, title = {livesync-commonlib: Platform-independent replication and synchronisation engine for Self-hosted LiveSync}, version = {0.4.0}, year = {2026}, publisher = {npm}, url = {https://registry.npmjs.org/@vrtmrz/livesync-commonlib/-/livesync-commonlib-0.4.0.tgz} } @software{fancykit, author = {{vorotamoroz}}, title = {vrtmrz/fancy-kit: Fancy Kit repository snapshot 2026.08.24.1}, version = {fancy-kit-2026.08.24.1}, year = {2026}, publisher = {Zenodo}, doi = {10.5281/zenodo.22088208}, url = {https://doi.org/10.5281/zenodo.22088208} } @misc{selfhostedlivesyncrepo, author = {{vorotamoroz} and {Self-hosted LiveSync Contributors}}, title = {Self-hosted LiveSync source repository}, year = {2026}, url = {https://github.com/vrtmrz/obsidian-livesync}, urldate = {2026-11-07} } @misc{livesynctest1046, author = {{vorotamoroz} and {Self-hosted LiveSync Contributors}}, title = {Self-hosted LiveSync test procedures (version 1.0.46)}, year = {2026}, url = {https://github.com/vrtmrz/obsidian-livesync/blob/1.0.46/test/README.md}, urldate = {2026-11-07} } @misc{livesyncnfc1046, author = {{vorotamoroz} and {Self-hosted LiveSync Contributors}}, title = {Unicode path identity: Verification contract and limits (Self-hosted LiveSync 1.0.46)}, year = {2026}, url = {https://github.com/vrtmrz/obsidian-livesync/blob/1.0.46/docs/design_docs/unicode_path_identity.md#verification-contract-and-limits}, urldate = {2026-11-07} } @misc{livesyncci1046, author = {{vorotamoroz} and {Self-hosted LiveSync Contributors}}, title = {GitHub Actions CI checks for Self-hosted LiveSync 1.0.46 (commit 3d1bcc3)}, year = {2026}, url = {https://github.com/vrtmrz/obsidian-livesync/commit/3d1bcc3498740c99761a60d1714e6c8f3e7d833e/checks}, urldate = {2026-11-07} } @misc{livesyncrecovery1046, author = {{vorotamoroz} and {Self-hosted LiveSync Contributors}}, title = {Recovery and flag files: Unicode NFC migration and journal recovery procedures (Self-hosted LiveSync 1.0.46)}, year = {2026}, url = {https://github.com/vrtmrz/obsidian-livesync/blob/1.0.46/docs/recovery.md}, urldate = {2026-11-07} } @misc{obsidian, author = {{Dynalist Inc.}}, title = {Obsidian: A knowledge base that works on local Markdown files}, year = {2026}, url = {https://obsidian.md} } @misc{couchdb, author = {{The Apache Software Foundation}}, title = {Apache CouchDB: Seamless multi-master syncing database with an intuitive HTTP/JSON API}, year = {2026}, url = {https://couchdb.apache.org} } @misc{couchdbreplication, author = {{The Apache Software Foundation}}, title = {{CouchDB} Replication Protocol}, year = {2026}, url = {https://docs.couchdb.org/en/stable/replication/protocol.html}, urldate = {2026-09-07} } @misc{pouchdb, author = {{PouchDB Authors}}, title = {PouchDB: The Database that Syncs!}, year = {2026}, url = {https://pouchdb.com} } @misc{webrtc, author = {{World Wide Web Consortium}}, title = {WebRTC 1.0: Real-Time Communication Between Browsers}, year = {2021}, url = {https://www.w3.org/TR/2021/REC-webrtc-20210126/}, urldate = {2026-09-07} } @misc{obsidiansync, author = {{Dynalist Inc.}}, title = {Obsidian Sync: Secure, end-to-end encrypted synchronisation service}, year = {2026}, url = {https://obsidian.md/sync} } @misc{obsidiangit, author = {Denis Olehov and {Obsidian Git Contributors}}, title = {Obsidian Git: Backup and synchronise your Obsidian vault with Git}, year = {2026}, url = {https://github.com/Vinzent03/obsidian-git} } @misc{syncthing, author = {{The Syncthing Authors}}, title = {Syncthing: Open Source Continuous File Synchronization}, year = {2026}, url = {https://syncthing.net} } @misc{syncthingsync, author = {{The Syncthing Authors}}, title = {Understanding Synchronization}, year = {2026}, url = {https://docs.syncthing.net/users/syncing.html}, urldate = {2026-09-07} } @misc{gitfetch, author = {{Git Contributors}}, title = {git-fetch: Download objects and refs from another repository}, year = {2026}, url = {https://git-scm.com/docs/git-fetch}, urldate = {2026-09-07} } @misc{automergeconflicts, author = {{Automerge Contributors}}, title = {Automerge: Conflicts}, year = {2026}, url = {https://automerge.org/docs/reference/documents/conflicts/}, urldate = {2026-09-07} } @misc{remotelysave, author = {fyears and {Remotely Save Contributors}}, title = {Remotely Save: Sync non-official Obsidian plugin}, year = {2026}, url = {https://github.com/remotely-save/remotely-save} } @misc{trystero, author = {Dan Motzenbecker}, title = {Trystero: Serverless WebRTC matchmaking and data channels}, year = {2026}, url = {https://github.com/dmotz/trystero} } @misc{obsidianplugin, author = {{Obsidian Community Plugins}}, title = {Self-hosted LiveSync in the Obsidian Community Plugin Directory}, year = {2026}, url = {https://community.obsidian.md/plugins/obsidian-livesync}, urldate = {2026-09-02} }