Summary
Add a site-level export feature so users can export all photos from an entire site, preserving meaningful organization and including lifelist data.
Problem
Users currently need a way to take a complete copy of a photo site. The export should be useful outside the app, not just a flat dump of files.
Proposed behavior
- Provide an export action for an entire site of photos.
- Allow the exported archive/folder to preserve album structure, with photos grouped by album.
- Support exporting multiple albums in a clear directory structure.
- Include a lifelist export for the site, ideally as a machine-readable file such as CSV or JSON.
- Include enough metadata for each photo to make the export useful after download, such as filename/title, date, album membership, species/taxon where applicable, captions/notes, and photo IDs if available.
Acceptance criteria
- A user can start an export for a full site.
- The resulting export contains all eligible site photos.
- Albums are represented as folders or another documented structure.
- Photos that appear in multiple albums have deterministic handling, either duplicated per album or referenced from a shared photos folder with album manifests.
- The export includes the site's lifelist.
- The export format is documented in the UI or generated archive, so users can understand the folder and metadata layout.
- Large exports provide clear progress/status and failure messaging.
Open questions
- Should album exports duplicate files per album, use symlinks where supported, or use manifests pointing to a shared photo directory?
- Should private/unpublished photos be included by default, excluded, or controlled by an option?
- Which lifelist format should be considered canonical: CSV, JSON, or both?
Summary
Add a site-level export feature so users can export all photos from an entire site, preserving meaningful organization and including lifelist data.
Problem
Users currently need a way to take a complete copy of a photo site. The export should be useful outside the app, not just a flat dump of files.
Proposed behavior
Acceptance criteria
Open questions