A Dropbox wishlist

March 10th, 2021


If I could build a cloud filesystem from scratch, this is what I would build. First and foremost, you want to build a Dropbox-level sync client. They did a flawless job of that. Most of my qualms are with the web/API.

Namespacing

Everyone has their own namespace, like fs.io/username/, but home directory linking works as it should fs.io/\~/path/to/files. Yes, this seems a little nerdy, but links are great.

Read, write, execute

You can assign read, write, and execute permissions to owner, groups, and public, just like unix. You could create scripts that run in the cloud. It’d need to run in some node container, but it should have access to your entire cloud filesystem. Like, this would be possible.

cat "hi" | curl -X POST http://fs.io/username/script.js
#!/bin/fsjs

import { anotherStringify } from 'fs.io/username/path/to/script.js'

process.stdin.once("data", chunk => anotherStringify(chunk));

You could even have stuff that opens files. You could have it register for filesystem extensions and then serve up a full webapp. It could even be closed source, with the node stuff being secret, or third party. You can even have things like a fs.io/username/crontab that ran scripts.

I don’t think that everyone’s going to be writing little js scripts, but the important thing is that everything becomes shareable so only 2% of the userbase needs to for the other 98% to benefit. Because of relative pathing, scripts can work for everyone. unix’s brilliant philosophy around building sharp, composable tools becomes available for everyone.