XOR Drive - New file manager app

#1

Happy new year everyone!
We deployed an initial version of a new app called XOR Drive for storing and managing all your files on Blockstack. All your files are stored encrypted, and decentralized as you can choose where you keep your data (thanks to Blockstack).
Here are the features we have implemented so far:

  1. Upload files and folders
  2. Drag and drop upload (only on desktop)
  3. Create folders
  4. Move folders/files to another folder
  5. Publicly share a file
  6. Download files/folders
  7. Rename files/ folders
  8. Mark as favorites
  9. Trash & delete
  10. File previews (working on supporting more file types)

Here are the features we have on our roadmap:

  1. Share with other users
  2. Tags
  3. Display file and folder details
  4. Activity for file and folder
  5. Passphrase protection
  6. Grid view
  7. Drag and drop to move to other folders
  8. Dark mode
  9. Clone a file
  10. Mobile apps

We’ve made sure the currently deployed version works fine in mobile browsers too.
We would love to hear your feedback, suggestions, and questions.

https://xordrive.io/


Wishing you all a great 2019!

Thanks!

6 Likes
Gaia as user?
#2

Blockstack’s white paper publicly shared using XOR drive: https://xordrive.io/?p=xordrive.id.blockstack_9e9c6cb3-ba73-39dc-85e2-5d3e6cbd813c

Bitcoin white paper: https://xordrive.io/?p=xordrive.id.blockstack_a3be6c37-48b3-059b-a1bb-413542339f85

1 Like
#3

This a great app. You need to integrate blockusign into it

3 Likes
#4

We are featured on Product Hunt today!

2 Likes
#5

I don’t know why but your app seems to have memory issues / bugs out when uploading large files (such as those > 100mb). I think it is because the upload is “syncronized” instead of being on its own thread (like through a promise or an async function) – not sure though.

Also when making them public, it freezes up again – seems like the encrypt/decrypt is done synchronized as well, making it a rather awkward experience. If there could be a progress bar when decrypting (such as when setting it to public) that would help a lot.

I would like to see an option to, by default, not encrypt large files but make them optionally encrypted after uploading, that way when I want to transfer it to public, I can do that easily.

Opening a large file that is publicly shared does not work either, see: https://xordrive.io/?p=_a93d9b4c-ff9e-24eb-9262-78e75dbd8207 (~110mb). It downloaded fine when first uploaded/encrypted, when set to public, I can’t download it via my drive-interface either (perhaps the segmented decryption broke?).

I would also like the option to share it publicly but keep it stored encrypted, i.e. it is stored encrypted but the share URL has the key in the url-params. This would be similar to a “anyone with a link can view” type of option, but keep the storage as dumb storage still.

It’s a good prototype though, thanks for making it!

2 Likes
#6

Thanks for trying the app and your feedback. We are working on improving the performance of the app. As you pointed out, all the upload/encryption/download are happening synchronously now. This is the very first version of the app we released and we were more focused on implementing the basic functionality before performance tuning for large files.
Also, if you are using the default Gaia hub, there is 5MB per file limit (Blockstack recently increased it to 25MB). So the way we handle this scenario is splitting up the file into multiple chunks before the upload. But still as you mentioned, the performance can be improved by moving the upload/download/encrypt/decrypt to a separate thread. Thanks again!

4 Likes
#7

Also, are you using the app with a Blockstack ID, the above link seems to be missing the Blockstack ID in it.
For example, the following is a valid public link : https://xordrive.io/?p=muneebmajeed.id_7b68874e-9fb0-f3ac-77bb-088d046d6639

#8

I am not, that one is a private id link, but I did previously with another id (asdf.blockstack.id) but it also didn’t work - I can get you that link later though.

Regardless I am still unable to download from my private interface when it is previously shared. Also I got back on and it seemed to no longer be shared… odd.

1 Like
#9

Thanks for the details @MichaelFedora! It is required to have a Blockstack ID for the public share feature to work as it depends on Blockstack’s Gaia multiplayer feature which in turn requires a Blockstack ID. I am sorry that you are having problems downloading the files, it should have been communicated better in the app. I suspect it’s related to not having a Blockstack ID. To prevent this from happening for other users, we will do the appropriate validation and display an error message if a user with no Blockstack ID attempts to share. Thanks again for the feedback.

#10

@muneebm Did this app open source like graphite ? where can I submit bugs and issues?