What it does

Install MemoryLane on a Fire TV and it shows a code and a QR. Scan it with your phone, sign in with your Amazon account, and pick photos from your camera roll. Everyone on the trip scans the same QR from their own phone and their photos land in the same trip, credited to them. The TV shows uploads arriving live.

The backend groups burst shots and picks the keeper, scores every photo, aligns the clocks of different phones from overlapping GPS, splits the trip into days, draws the route, and writes a day-by-day story that names who took what. Ask the TV or Alexa+ for "beach days with the kids" and a playlist plays. Nothing irreversible happens without a confirmation on the remote: an agent can propose removing duplicates, but only the Review Changes modal on the TV can mint the token that lets the tool run.

Tracks: Fire TV (primary), Alexa+ (secondary, same agent tools through an MCP add-on). Mini-challenges: AWS Builder, Open Source.

How we built it

  • Fire TV app in React Native for Vega, fetch-only, no native modules, one codebase for Vega OS and Fire OS.
  • Phone uploader as a PWA: no install, resumable multipart uploads straight to S3, streaming SHA-256 for exact-duplicate rejection before any processing.
  • Backend in Rust on Lambda behind API Gateway: device-code sign-in through Cognito federated to Login with Amazon, trip codes, presigned uploads, a long-poll event feed.
  • Ingest as Step Functions: a per-object signal task (EXIF, perceptual hash, sharpness, renditions) and a per-household organize task (bursts, keepers, clock alignment, trips, routes, highlights). Only keepers reach Rekognition; the rest of a burst inherits.
  • Agents on Bedrock AgentCore: a Strands Concierge with Memory, six workflows (Trip Curator, Ask Your Archive, Household Patterns, Dedup Steward, Share, Trip Merge), tools through AgentCore Gateway with Lambda targets, Cedar policy on irreversible tools.
  • One CDK stack. Everything under make test runs without AWS.

Challenges we ran into

  • Amazon Photos has no public API, so photos come from the phone's camera roll through the browser file picker. This is the biggest ecosystem gap for memory apps on Fire TV and Alexa+; the friction log names an Amazon Photos MCP tool and an LWA photos:read scope.
  • Cognito has no OAuth device grant, so sign-in on the TV is a small custom device-code flow: the TV shows a code, the phone approves it, the TV polls.
  • A trip narrative from a model must never invent a place or date. The story is generated from structured metadata only and checked against it before it is saved; a story that fails the check is withheld.

What's next for MemoryLane

Alexa+ on Echo Show through the Gateway MCP endpoint, S3 Vectors for cross-trip search, Amazon Location static route maps, and a home node that syncs metadata for households that want originals to stay local.

Built With

Share this project:

Updates