Thread

I’ve built a service that backs up nostr events. More precisely, it synchronizes between relays. There have probably been similar tools before, but what sets this apart is that it strictly synchronizes based on the outbox model. Well, maybe something like this already exists too, but who cares? The world is full of similar programs anyway. The usage is simple: just enter your npub and press the sync button below. From that moment, it starts going back in time until there are no more events to fetch, syncing the relays as it goes. It queries notes in chronological order and republishes them only to the relays where they’re missing. It syncs the posts I’ve written only to my write relays, and the posts I need to read only to my read relays. This whole idea was inspired by this post I deeply resonated with: Because of that, the sync feature is not provided to users who have registered too many relays. This should be helpful when you’ve changed your relay configuration and want to back up your past notes to newly added relays.

Replies (7)

Thanks for the feedback. There’s still a lot to add — like automatic reconnection on socket failure, user-configurable sleep time, auth support for users of paid relays, and more — but I decided to just release it for now. I hope people find it useful, but I’m a bit worried there might be some bugs lol.
seems like it would be quite useful for catching what you sent with actual outbox clients, but outbox is actually a second level of complexity above this, maybe you can build this out: sometimes it may happen that your outbox capable client failed to send an event to your outbox relays, or, maybe you changed them, and messages that you sent would get missed but your follow list contains a list of users, if you gathered their relay lists you could then make an extended search to catch the stray stuff that for whatever reason (ie, using a non-outbox client to publish a message, or relays down) you didn't find by looking at your outboxes seaching your follows for their inboxes would give you a second phase to the process and then you would definitely catch the dregs at the end of the bottle
You're talking about notes that, for whatever reason, don't appear on any of the user's current outbox relay list, right? Yeah, those definitely slip through. I actually thought about trying to catch those too, but decided it’d be better to start with a simpler version first. Along with what you mentioned below, that’s definitely something I should try implementing next. If that works, it might as well be called Nostr archaeology.