Something I’ve always wanted when syncing data with apps is to have files on my machine and some kind of version control. So I’ve been working on Bind, which is a remoteStorage server that works with git. Been using it for some months and pretty happy with how it works.

Bind links multiple data sources and lets you choose which one when connecting storage to an app. Some consequences of this design:
- flexibile enough to give apps sandboxed access or use existing files that weren’t created by a remoteStorage app.
- platform tokens move to the server so each developer doesn’t need OAuth registration
- apps don’t even know where the data is (not necessarily on account server)
- servers don’t need to have ‘custody’ over an accounts data, they just relay between the app and data sources.
“features”
- connect GitHub to use any repo as a data source
- account self-management: remove authorizations, change password/username, delete account
- admin panel to create users, disable signups
- using the local disk as a data source is optional
- better-auth framework enables more extended login scenarios (for now just email/password)
- “one-click” packages for Cloudron, Caprover, and Coolify, with secret auto generated on installation
bugs
/publicfolder access with no token only works if local disk is the data source; need to implement per-source usernames to route when there is no token- GitHub REST API is a bit slow, but hopefully usable
- I’ve been using self-hosted Gitea repos synced via Git over HTTPS with much better performance, but it’s still undocumented/private as I need to implement an interface to enter credentials.
I could use some help with testing. Does it work? Any security considerations I’ve missed? Or architecture issues that will come back to bite me later? I’ve disabled GitHub issues on the repo because I want to use something else to manage that; still figuring out where so maybe just reply here for now.
Message me with your email address if you want me to invite you to the community server, which should become open access once social logins are implemented.
Lot of stuff missing probably but I think it’s important to put this out in case anyone finds it as useful as I do.