Skip to main content

Building a Dropbox Clone

·258 words·2 mins
Dropbox Clone - This article is part of a series.
Part 1: This Article

I’m building a Dropbox clone and I’m laying down the rules of how it will be built.

Hello folks, before we get started, let’s just get it out of the way: I got burnt out on writing these blogs, plus I was hit with an unexpected bill on AWS for the last project, which put a damper on the entire series. Then, I got a job, built and deployed another project (a note-taking app) but was still burnt out on writing, so no blog series on that one. However, I realized I missed out on a lot of value by not writing what I’ve learned from the second project.

So this is a redemption arc, a comeback one might say. I’m making a third clone project. This time, I’m building a Dropbox clone.

One might ask, “What’s different this time?”

To that I say, “This time, the only guarantee that I’ll make is that you’ll get a heads up when I’m quitting the project.”

Here are the early decisions I’m making for the Dropbox clone:

The stack:

  • Rust as the backend
  • PostgreSQL as the DB
  • Svelte as the frontend

What it should do:

  • Authentication/Authorization
  • Upload file(s)
  • Rename file(s)
  • Create folder(s)
  • Rename folder(s)
  • Delete file(s)/folder(s)
  • Download file(s)/folder(s)
  • Scan file type(s)
  • Handle filtering by type(s)
  • Limit file size
  • Show storage usage
  • Generate shareable links

What it won’t do:

  • Have a mobile-friendly design
  • File previews
  • Cancelling mid-uploads
  • Sync to local folder directory

It’s a long list, so we’ll tackle it slowly. From backend to frontend. Buckle up folks, we’re so back.



Dropbox Clone - This article is part of a series.
Part 1: This Article