DEV Community

Cover image for Filesharing with and Vue.js (Part 0)
Allan Dorr
Allan Dorr

Posted on • Updated on

Filesharing with and Vue.js (Part 0)

The "Research"

Stumbling through devposts and fintech, I came across this site that claims you can "Build apps backed by Filecoin, no infrastructure required." Decentralized file storage based on digital coin technology. Automatic replication across network. Freeee*. Bam, I'm already sold and brainstorming project...


  1. Filestore for some database
  2. Nextcloud clone
  3. Wetransfer clone


Okay, for 1. I could consider implementing that sometime in the future for some project. But we want to do something a little fun...
For 2... too many variables. Too much to cover. Would eventually have to implement Desktop Client.
For 3... seems like a good fit. A simple file-sharing app.

Other considerations

  1. A crazy-long URL like is unwieldy, to say the least. Therefore we will need a link shortener involved somehow. I will have to read this post:
  2. Oh my, there's no encryption, and anyone who has my file's CID can access it. Plus, since I own the key from for all the CIDs, I can log in to and see everything everyone has uploaded. Do I want to involve encryption? (Note: Warn users that they should (strong) encrypt their files before uploading.)
  3. I'm going to have to choose some framework stuff, so I'm choosing Vue 3, plus Equal UI to try out and hope that it will make a few things easier. (Note: Probably you should use the UI framework you're familiar with. I chose Equal, because it seems to have the best support for Vue 3, whereas Buefy... which I would have loved to have used, I couldn't get set up with Vue 3.)

Before I get much farther in this, I'm going to take a breath and see if there's anything else I need to consider... Anonymous... Would that pose a risk of bad stuff happening on my account. Hmmm. I am not sure how to avoid this.

Stay tuned, for my little tutorial on how to make something along these lines:

Preview of upload page

Top comments (0)