Other Backup Options

We will try to add this, but it is not something we hear very often from customers. Most people are completely happy with the iCloud backup Apple provides. It is likely that the iCloud backup will be more up-to-date than a manual backup you have to run yourself. And the Apple backup will include all apps, not just Agenda.

I understand itā€™s my experience, that makes me think about what could go wrong, but things does go wrong quite often.

Appleā€™s backup is no good - here is why in more details:

  • 1 July you updated the app, and during the update the database get corrupted (iCloud minor bug on top of your migration script, that you just introduced because of some nice feature to add)
  • 1 July your customer have a vacation, so he donā€™t open Agenda at all
  • 15 of July he opened Agenda to find that all his records are gone.
    What will he do? There are no backups in iCloud lasting that long - itā€™s only available for the last few days, maximum.

Another case:

  • at the end of the 2 July customer opened the app and found no data - panicked;
  • he had a very intensive day, with lots of WhatsApp communication, including a very important document with competitorā€™s production details he got there; he also run his first marathon, so heā€™s proud to see this all tracked in his Health app;
  • following someoneā€™s recommendation, he recover from last iCloud backup - ok, Agenda data is there, but all WhatsApp messages (including important document) and his marathon record are gone from his phone, as well as many other data, that has no single server sync (like Telegram or Notion, for example) and solely rely on local data storage.

I understand, this might not happen often, but when it does, itā€™s quite dramatic, like any incident.

Since, you are moving to become one-fit-all app (like Notion does), ensuring data is safe is getting more and more important as well.

Iā€™m only aware about nightly backups that are stored somewhere (could be the same iCloud folder, by the way: every new day the app starts, it does snapshot and backup of the previous data to the folder available to the user in iCloud drive, for example), but there could be some other ways to do that - probably even easier than that.

And, as I mentioned, that seems like a very valid paid option - if you are crazy about your data (like I do), here is a paid option for that.

Hope it makes sense now?

2 Likes

Thanks, and yes, there are certainly some cases where iCloud is not idea. If you have a Mac, Time Machine is a good option, because it does give you some granularity in how far back you go in the history etc.

We will keep it in mind, and see if we can come up with something on iOS. Appreciate the feedback.

1 Like

Thank you! If anything I could be of assistance, please, let me know!

Iā€™d like to add my voice to @alexander.potemkin here ā€” Iā€™d love to see a more robust backup option than basic iCloud. Two reasons:

One, I donā€™t see why I should trust Apple to not lose my data. Iā€™ve used Apple products and services long enough to remember MobileMe/iTools and its instability. A backup stored in only one place is, while better than nothing, not something to count on. I understand that ā€œmost people are completely happyā€ with Appleā€™s promises, but that will change next time that iCloud has a catastrophic data loss or security breach.

Two, I find it valuable to go back in time and review how my notes have changed. This means something similar to git history would be invaluable to me.

A simple implementation that I would be satisfied with is some way to (1) do a full library export, and (2) automate doing the full export. Full library export comes up occasionally, see this question for example: Back up Info

It seems to me that a full-library Markdown export should be a simple feature to add: you already support per-project export, and a full export should be a matter of iterating across all projects and writing them to a target directory. Add a menu item, and done.

Export automation is trickier, but Iā€™d be happy with a first version that just adds an AppleScript call that does a full-library MD export, and allows specifying a target directory. (From there, I can export to a local git repository and add the necessary scripting to do this hourly and push to a remote git repository I control.)

Overall, that seems like a great premium feature to add for data-safety conscious users with a technical bent. (I get that people like that are likely a small minority.) And I know how pretentious and pointy-haired manager that sounds, but it just doesnā€™t seem like it should be a ton of work to add this to the (excellent!) app you have here.

1 Like

Do you want this on the Mac, or on iOS? On the Mac, it is pretty trivial to make manual backups. If you can write a little script (Applescript, Python, Bash shell), you just copy the folder containing Agendas data to some other location (eg local or Dropbox folder).

A script to do this is as simple as this:

cp -rf ~/Library/Group\ Containers/WRBK2Z2EG7.group.com.momenta.agenda.macos ~/Desktop

This one just backs up to the Desktop, but you can change that last path to whatever you like. You could set this up with launchd, or as an automator action. You can even run scripts like this from AppleScript, I believe. In fact, it may even be possible to make an automator action directly that does a folder copy, and then you donā€™t need any scripting at all.

On iOS, it is more tricky. I should point out that it is not true that you only have a single backup on iOS. If you are using iCloud or Dropbox sync, effectively you have two backups. You have the sync data, which will restore to new devices, and you have Appleā€™s standard iCloud backup of the device. For most people, this should be enough. If you also sync with a Mac, and have Time Machine on there, you have yet another backup running.

I think exporting the library would be a good feature, and we will certainly consider it. Perhaps not as Markdown initially, since that is a lossy backup, but probably as a zip file containing the folder I copy in the script above.

Drew

Thank you for your comments!

  1. Itā€™s great that the WRBK2Z2EG7 directory is a full backup. Iā€™ll add it to my backup system.

  2. I bring up (automated) Markdown export because Iā€™d love to be able to diff revisions of my notes. The on-disk backup consists of a bunch of SQLite databases ā€” not very amenable to git diff to find out what changes I made last week. I realize itā€™s a lossy export, and Iā€™m fine with that for my purposes. An AppleScript hook to ask Agenda.app to perform the export will allow a scripted export so git revisions could be written automatically.

  3. So far, Iā€™m mainly referring to the Mac situation. I understand iOS restrictions complicate matters. A Markdown export of the entire library would be a great start. A timer-based automatic export would be fabulous ā€” with timestamped exports, itā€™d be even better. Iā€™m sure iOS has massive restrictions on running timers, but if the timer just runs while the app is active, thatā€™s probably good enough. WhatsApp does something similar with its conversation backup (though I donā€™t think it writes anything outside its sandbox).

Note that we already do support quite a bit of automation via x-callback. Perhaps you can even write an AppleScript that simply exports notes one at a time. Not 100% about whether that would be possible.

I looked through the x-callback reference page, but didnā€™t find anything like list-projects or list-notes. There are ways to grab objects by ID, but there doesnā€™t seem to be a way to retrieve a list of IDs to work with.

Indeed the read-side of the the x-callback-urls is something weā€™d still like to add.