chapter 13 of 18

Where your data lives

~/Library/Application Support/app.reelpile.desktop/
    data/    db.json, backups/
    media/   videos, posters, images, extracted mp3s
    bin/     yt-dlp, ffmpeg, gallery-dl, recognise
    logs/    server.log, shell.log

The path is shown in Settings under Data. ⚠️ It is plain text: there is no "reveal in Finder" button and no way to change the folder from inside the app. The only Finder-opening action is Open logs.

The format is plain JSON. A single db.json. No SQLite. Writes are atomic (temp file, then rename), so a crash mid-save cannot corrupt the library.

Media files are named by the card's UUID: <uuid>.mp4, poster <uuid>.jpg, carousel <uuid>.1.jpg, extracted audio <uuid>.mp3.

Auto-backup, as it really is

  • A snapshot is taken on save, at most once every 5 minutes, plus one at every app launch.
  • The last 60 are kept. (The cap is shared between the two kinds, so in practice fewer than 60 of either.)
  • They live in data/backups/, in two shapes: db-2026-07-24T10-32-27.json for the every-five-minutes kind and db-start-2026-07-24T10-32-27.json for the one taken at launch.
  • A snapshot is a copy of db.json: boards, cards, positions, notes. No videos are in it — but if you have ever published a board, it does carry that board's write key, the credential that can overwrite or unpublish the link your client is looking at. The same is true of the ⬇ Backup download, which serves db.json whole. It is not a secret-free file.
  • In Settings this is one row, Auto-backup, reading on · N snapshots kept. There is no off switch. "on" is hard-coded.

How you actually use a snapshot matters. Automatically, they save you in exactly one situation: if db.json is missing or unreadable at start-up, the newest snapshot is loaded silently. There is no interface for picking a snapshot by hand. The ↩ Restore button only accepts a file you exported yourself with ⬇ Backup. To use an auto-snapshot you have to open the folder in Finder, and no button in the app opens that folder.

The four backup buttons

ButtonWhat it does
⬇ Backupdownloads db.json: boards and cards, no video
↩ Restoreloads such a JSON back
⬇ Full backup (with videos)a .tar of the library: database + all media
↩ Restore full backup…native file picker, unpacks it back

A full backup no longer carries an Instagram session, because there is none to carry (section 14). Restoring still replaces your current board, and ReelPile is still meant to be used on one machine at a time.

Restoring is destructive and asks first; a copy of the current state is genuinely saved before it is replaced.

Something here wrong, or something missing? Tell us — the manual is corrected against the app, not the other way round.