how we store and collaborate on our work
Files are one of my favorite computing primitives.
For example: unix’s everything-is-a-file philosophy; file explorers like Norton Commander and macOS Finder; USB sticks and Dropbox and network-attached storage; and even (yes, really) email attachments.
Flat file formats like TXT, PNG, JPG, PDF, ZIP, and CSV have stood the test of time, weathering the coming and going of computing trends and platform monopolies. Hierarchical filesystems remain the most-used, most-comprehensible method for managing our digital stuff.
Web apps (or “the cloud”) are an entirely different paradigm for data storage. The user’s data is managed by a professional team on computers the user is not responsible for. Because the data for all users of an application are combined together in a single place, this opens up new possibilities for collaborative work such as Google Docs, GitHub, and Notion.
Documents on the web are easy to share: just paste a URL, which is universally accessible from any device and location. The user’s data is connected to an account rather than a device, allowing them to move freely between devices or drop their computer in a lake without any data loss. And the centrally-administered nature makes perfect sense for enterprise teams who want to control access in a uniform and legible way.
Mobile apps (iOS, Android) are a third paradigm, also distinct from both files and the cloud. Instead of folders/files or accounts/URLs, the user’s mental model is “apps.” Apps appear as colorful tiles that are arranged in a grid on their device. For native-focused apps (ignoring those which are thin clients to a web service), the user’s data is tied to the app and cannot be inspect or manipulated separately.
Native mobile apps are responsive and offline-capable by default; compare to the spinners and loading screens common in web apps. And where files and the web ask the user to identify and manage objects by text identifiers (filenames and URLs respectively), mobile embraces true direct manipulation.
Files, the web, and mobile all offer unique benefits but each also comes with significant downsides. I’ve written about the tradeoff between files and the cloud in local-first software. But I’d like to bring the benefits of mobile into the mix here as well.
Thus a storage and collaboration paradigm that hybridizes all three of these might include:
User agency and ownership (files)
Shareability and collaboration (the web)
Speed and direct manipulation (mobile)
Unfortunately, this is a difficult area to innovate on. Data storage reaches deep into the internals of a given platform (unix, the web, iOS, etc) creating a status quo that is hard to change. Some brave souls have tackled this by building a storage platform as an independent company (Lima, BitTorrent Sync) or community project (Perkeep, IPFS) but it’s clear this is not an easy path.
Another way to come at the problem of storage innovation is to start with a useful app that later can reach down into the storage layer. Google Docs → GDrive is an example of this. Dropbox and their platform attempt is another. We’re using this app-first approach with Muse, which conceptually blends the Finder-style file manager with the direct-manipulation style of a mobile Camera Roll and (later on) the collaborative canvas of Figma.
Advancing the state of the art here is incredibly difficult for structural reasons, but I think also one of the highest-value targets for how we can make computers better for creative and productive activities.
The world we have: Files are outdated, the cloud is collaborative but lacks user ownership, mobile apps offer users almost no visibility or control of their data.
The world I want: Productivity tools that take the best parts of files (agency and ownership), the best parts of the cloud (social and collaborative), and the best parts of mobile (fast, private, offline-capable).