One of my first Nostr projects, and today I finally gave it a proper upgrade. Enter your pubkey, add custom relays, and it syncs your data across them. Or just hit backup and broadcast to pull your data from active relays, save it, and push it everywhere again. Even if relays go down or events disappear, you can always bring them back and spread them further.

Replies (12)

Hey, this is very interesting, I've been looking to make something similar. Does it use negentropy or just read and [re]blast? Also is it a a sync once type thing or continual?
I had a separate project for continuous blasting. It’s not active yet, but it should be ready in about a week. This one, however, works a bit differently. It goes through all currently active relays, looks for events related to your pubkey, fetches those events, and packages them into a JSONL file that gets downloaded locally on your device. It also broadcasts that data back to all available relays. The JSONL file can be reused later to rebroadcast your data. So even if relays shut down or delete older events, you don’t lose your notes or history. You can restore everything by broadcasting it again to new relays. It’s essentially a one-time snapshot of your entire Nostr activity that you can use for backup and recovery.
Troy's avatar
Troy 2 months ago
Is it working again? 🥳 I tried to back up my notes a week or two ago, and it only gave me 15k files instead.
When exactly did it happen? Was it right after fetching completed, when it was about to start broadcasting?
I guess that might have been the moment. It found 19k events and then crashed. That's ballpark the right number to start trying to publish.
I think I understand the issue. When events are fetched, we also store them in IndexedDB. For large files, this likely causes a crash since it’s simultaneously writing to IndexedDB, downloading the file, and starting a broadcast. I’ll optimize this in the next update. Thanks for sharing your experience and sorry for wasting your time.
Thanks to your feedback, I optimized it even further. Tested on one of my old iPhone with 36k events loaded. No crashes, no stuttering. Also improved the UI to make it cleaner and more compact. image