Skip to main content
New

Movie Diary

Track every movie you watch with dates, times, and notes. A personal Letterboxd-style watch diary inside Dayze.

What is Movie Diary?

Movie Diary is your personal film watch log. Every time you watch a movie, it gets recorded with the date, time, and any notes you want to add. Your diary lives at /[handle]/movies as a public page that showcases your film journey.

Entries are grouped by year and displayed in a chronological timeline. You can search, sort, and see stats like total watches, unique films, and total screen time. Each entry links to the movie's full profile page in the Dayze movie database. TV series use TV Diary; sleep dreams use Dream Diary.

Features

Watch Log

Log every movie you watch with the exact date and time. Your diary is a chronological timeline of your film life.

Duration & Total Time

See runtime for each film and your total watch time across all entries — know exactly how much time you've spent watching.

Search & Sort

Search your diary by movie title. Sort by newest or oldest first to find any watch entry quickly.

Arrange View

Switch between timeline list view and a poster grid. Grid is the default layout and your choice is remembered for future visits. Poster grid uses 1px gutters and square (non-rounded) tiles, matching the /movies catalog.

Edit watches (owner)

When you are logged in as the profile that owns the diary, use the pencil on a row to fix watched date/time, update notes, or delete the entry without leaving the page.

Year-by-Year Timeline

Entries are grouped by year with counters — see how many films you watched in 2024 vs 2025 at a glance.

Linked Profiles

Each diary entry links to the movie's full profile page with poster art, cast info, streaming links, and more.

To Watch + Watched

Your diary has two tabs: To Watch (queue) and Watched (history). Tell Dayze Agent “movies to watch: …” to add to the queue; “I watched …” logs a watch. On /movies when signed in, your To Watch strip appears above the catalog.

Dayze Agent

Say “movies to watch: The Odyssey (2026)” for the queue (status=want_to_watch), or “I watched …” for history (status=watched). Agent uses log_movie_watch. Pass the release year for new films. Missing catalog films are auto-added via Wikipedia/Wikidata or OMDb/IMDb when OMDB_API_KEY is set.

How to Use

1

Add to To Watch or log a watch

Ask Dayze Agent “movies to watch: …” to queue a film, or “I watched …” after you see it. You can mark To Watch items as watched from your diary.

2

Visit Your Diary

Go to dayze.com/[your-handle]/movies (To Watch / Watched tabs), or see your queue strip on /movies when signed in. Use the pencil on a watched row to change date, time, or notes.

3

Explore Stats

See total watches, unique films, and your watch history spanning across years.

Technical Details

Data: Stored in user_movie_log with status = watched or want_to_watch (queue rows have null watched_at)

Movies: Referenced from the notable_people entity database (entity_type = movie). Dayze Agent auto-adds missing films via OMDb/IMDb when OMDB_API_KEY is set (configured on Netlify production), then Wikipedia/Wikidata as fallback.

Posters: Thumbnails use notable_people.image_url. Wikipedia poster paths under upload.wikimedia.org must exist (wrong folder or filename → 404 → broken image in the browser). Resolve the real file with curl -sIL https://en.wikipedia.org/wiki/Special:Redirect/file/<FileName>.jpg or update image_url in Supabase for that slug.

Page: Server-rendered at /[handle]/movies with client-side search and sort

Poster grid UI: Grid mode uses gap-px (1px) and square poster cells (rounded-none), aligned with the notable-movies directory at /movies (components/entity/MovieGrid.tsx).

Live updates (owner): When Dayze Agent logs a film or you save edits in the pencil modal, the client dispatches dayze:movie-log-updated (constant DAYZE_MOVIE_LOG_UPDATED_EVENT in lib/brand/assistant.ts). The Movie Diary component refetches via GET /api/movies/diary/[handle] (service role — not the browser Supabase client, which cannot read user_movie_log under RLS) instead of calling router.refresh(), avoiding a whole-route server re-render.

Editing (owner): PATCH /api/movies/watch/[id] with session cookie updates watched_at and notes on your row only. If an events mirror exists (external_source=user_movie_log), event_date, event_time, and (when notes change) description are updated. No mirror row yet → only the diary table changes until you run the sync script below.

Delete (owner): DELETE /api/movies/watch/[id] is available from the Edit Watch modal and removes the diary row. If an events mirror exists for that entry, it is removed too.

Layout preference: Movie Diary supports List and Poster Grid modes. The default is Grid, and the selected mode is persisted in localStorage using dayze_movie_diary_layout.

Privacy: Your diary is public — anyone can see what you've watched and when

Calendar sync: New watches mirror to /calendar automatically (log_movie_watch, PATCH/DELETE). Filter Movies on the calendar. Backfill existing rows: npm run sync:movie-diary-events -- --handle=yourhandle. See Calendar docs.