chapter 13 of 18

Where your data lives

~/Library/Application Support/app.reelpile.desktop/
    data/    db.json, ig-cookies.txt, 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. Neither videos nor the Instagram cookie 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 & login)a .tar of the library: database + all media + the Instagram cookie
↩ Restore full backup…native file picker, unpacks it back

The note underneath, verbatim: "A full backup carries your videos and your Instagram login — keep it private. Restoring replaces your current board. Use ReelPile 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.