PHOTOS: feature parity with Immich (gap audit, then grill; no build before the grill) #592

Open
opened 2026-10-01 08:01:26 +00:00 by kayg · 1 comment
Owner

Owner request (2026-09-30, night)

"Tomorrow we will work more on Photos so we can get feature parity with Immich."

Earlier context (2026-09-29, Documents grill R2): the owner likes what Immich adds to photos: automatic metadata such as faces, memories and location, auto-tagged, with folder structure not important.

Goal

Photos reaches feature parity with Immich, while it keeps calternal's rules: file over app, plaintext, one index per User (#400), local-only recognition, no shared cross-User stores (#331).

Work

  1. Gap audit first. List every Immich feature (timeline, albums, shared albums, partner sharing, people/faces, places/map, memories, search by content (CLIP-style), duplicates, archive, favourites, locked folder, video playback, live photos, RAW, editing, mobile backup, external libraries, jobs). For each one, record: present / partial / missing in calternal, with a link to the code or issue.
  2. Grill the owner on the gaps, in rounds, with a recommendation for each question. Topics include: which metadata is file over app (XMP sidecars, #420) and which stays app over file (embeddings, face clusters); faces and people; memories; map; mobile backup (PhotoSync over WebDAV is in place).
  3. File one issue per agreed feature. Do not build before the grill.

Acceptance

  • docs/research/photos-immich-parity.md holds the gap table with sources.
  • The grill decisions are on this issue and in DESIGN.
  • Each agreed feature has its own issue.

Related: #34 (Immich importer), #341 (Documents auto-tagging, Immich-style), #417 (local recognition), #495 and #503 (Photos at scale).

## Owner request (2026-09-30, night) "Tomorrow we will work more on Photos so we can get feature parity with Immich." Earlier context (2026-09-29, Documents grill R2): the owner likes what Immich adds to photos: automatic metadata such as faces, memories and location, auto-tagged, with folder structure not important. ## Goal Photos reaches feature parity with Immich, while it keeps calternal's rules: file over app, plaintext, one index per User (#400), local-only recognition, no shared cross-User stores (#331). ## Work 1. **Gap audit first.** List every Immich feature (timeline, albums, shared albums, partner sharing, people/faces, places/map, memories, search by content (CLIP-style), duplicates, archive, favourites, locked folder, video playback, live photos, RAW, editing, mobile backup, external libraries, jobs). For each one, record: present / partial / missing in calternal, with a link to the code or issue. 2. **Grill the owner** on the gaps, in rounds, with a recommendation for each question. Topics include: which metadata is file over app (XMP sidecars, #420) and which stays app over file (embeddings, face clusters); faces and people; memories; map; mobile backup (PhotoSync over WebDAV is in place). 3. File one issue per agreed feature. Do not build before the grill. ## Acceptance - `docs/research/photos-immich-parity.md` holds the gap table with sources. - The grill decisions are on this issue and in DESIGN. - Each agreed feature has its own issue. Related: #34 (Immich importer), #341 (Documents auto-tagging, Immich-style), #417 (local recognition), #495 and #503 (Photos at scale).
Author
Owner

Deep-link audit evidence: DESIGN §33 lists /album/<album-id>, but the Photos route parser in apps/web/src/lib/photos/route.ts:2-8,37-64 has no album route, and no album surface is present. This is a route and Copy link gap while the album UI is not built. Keep this within the Photos parity scope and its existing grill-first decision. Regression idea, after the feature is approved and built: copy an album link and open it cold; verify the same album and selected view are restored.

Deep-link audit evidence: DESIGN §33 lists `/album/<album-id>`, but the Photos route parser in `apps/web/src/lib/photos/route.ts:2-8,37-64` has no album route, and no album surface is present. This is a route and Copy link gap while the album UI is not built. Keep this within the Photos parity scope and its existing grill-first decision. Regression idea, after the feature is approved and built: copy an album link and open it cold; verify the same album and selected view are restored.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#592
No description provided.