Would like an obsidian plugin that encrypts your whole vault and on a timer syncs it with a server. Encryption key is only client side. You can then have share links e.g. https://mydomain.md/username/vault/path/to/file#decryptionkey akin to mega.nz.

Motivation

I want to build my own obsidian publish for fun. (this is literally just a worse obsidian publish / sync)

MVP

  • Obsidian plugin
    • Login
    • encrypt whole vault without configuration
    • Push updates to server (does not pull, just overwrites all the time)
  • Webapp
    • Backend
      • user accounts (for obsidian plugin)
      • upsert notes
    • Frontend
      • view single notes w/ password prompt or auto load from location.hash

Post-MVP

  • Should upsert a sitemap that is not encrypted to provide FE with some basic navigation
  • Upsert encrypted flexsearch index for full text search on decrypted vault
  • Auto delete files as they’re deleted in obsidian.
  • Force update to new encryption key
    • Figure out how mega.nz makes this process not supremely expensive (unless they don’t do anything fancy)