File over app

File over app is a philosophy: if you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you this freedom.

— Steph Ango, CEO of Obsidian

I love Obsidian, and when it came to building a flashcard app, I really wanted to adopt the “new” ideology of not locking users into a platform by storing their data in proprietary ways.

Obsidian’s way of doing things has revealed many possibilities that I thought were once lost - apps working together on the same files, without throwing a tantrum about how “features will be lost!” if I saved in an open format.

Yes Excel, looking at you. 👀


Foldy is unapologetically built for the Mac. Our philosophy dictates that our products should appear native and have tight platform integration, and macOS was just the easiest platform to get started on. At least for now.

We aim to release Foldy on the Mac App Store - all apps there have been vetted by Apple, and even though there have been some instances where this hasn’t been the case, Apple’s aggressive privacy-oriented marketing means customers feel safe with apps from the App Store.

However, the App Store’s stringent requirements present a bit of a challenge to the file over app philosophy.

We can’t write to the disk.

I mean… we can, but we can only write within the app’s sandbox folder unless the user gives the app explicit permission - which from a security perspective is great! But this permission needs to be granted each time (it may be possible to bookmark this permission but that process is extremely unclear for macOS and sparsely documented for iOS). Apple has a few provisions built-in for document-based apps, but Foldy is not one of them, and to store a flashcard deck within a single file would require the creation of a proprietary format - not something as open as we would like.

The app’s sandbox folder isn’t synced to iCloud either, on macOS. Apple would rather apps use Core Data (or more recently, SwiftData) to save information onto the device and in iCloud. For this reason, working directly with files within the App Sandbox directly contradicts our goal of tight platform integration.

Our solution

We suggest a compromise between file over app and proprietary data storage. The current plan for Foldy is to save flashcards with SwiftData, and build robust exporting logic for flashcards such that users can easily export entire decks into a series of markdown files. While the app won’t be interfacing with the markdown files directly, we hope that if a user wants to move their data away from Foldy, they can do so almost as easily as they can with Obsidian.

Joel

2/18/2024