Keep using Photos.app like you always do. Attic quietly backs up your originals and edits to an S3 bucket you control. One-way, append-only.
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

Remove artificial sort — keep natural chronological order

The photo-first sort was a workaround for batch timeouts, but
skip-and-defer already handles that. The sort caused unnatural behavior:
--limit 100 would only process tiny photos, never reaching videos.
Natural DB order (roughly chronological) gives a representative mix
per run. Timeout scaling and skip-and-defer handle resilience.

+1 -8
+1 -8
cli/src/commands/backup.ts
··· 80 80 pending = pending.filter((a) => a.kind === AssetKind.VIDEO); 81 81 } 82 82 83 - // Apply limit (preserves natural DB order for asset selection) 83 + // Apply limit 84 84 if (options.limit > 0) { 85 85 pending = pending.slice(0, options.limit); 86 86 } 87 - 88 - // Sort: photos first, then videos; within each group by size ascending. 89 - // This keeps fast-to-export photos together and large videos at the end. 90 - pending.sort((a, b) => { 91 - if (a.kind !== b.kind) return a.kind - b.kind; // PHOTO=0 before VIDEO=1 92 - return (a.originalFileSize ?? 0) - (b.originalFileSize ?? 0); 93 - }); 94 87 95 88 if (pending.length === 0) { 96 89 log("\n Nothing to back up — all assets are current.\n");