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. It's private by default: you see every entry, and visitors see only the films you choose to share.

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 an entry to fix watched date/time, update notes, choose who can see it, or delete it without leaving the page.

Private by default

Every entry starts Private: only you see it. In the edit dialog, pick Friends only (your connections) or Public (anyone) for the films you want to share. Visitors see only those. In your own diary, shared entries carry a Public or Friends only badge.

Share many at once

Tap Select above your list, pick entries one by one or all of them, a tab or a year, then choose Private, Friends only or Public. Changed your mind? Undo puts every entry back as it was.

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 an entry to change its date, time, notes, or who can see it.

3

Explore Stats

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

What your diary looks like

Example

1 public · 1 friends only · 1 private

  • Heat(1995)

    Public

    Rewatched with the commentary

    Sep 20

  • Past Lives(2023)

    Friends only

    Mar 2

  • Rushmore(1998)

    Only you see this one

    Jan 10

What your own diary shows you. Shared entries carry a badge; the rest are private. A visitor to this diary would see only Heat, and your connections Heat and Past Lives.

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, answered for the caller: the owner gets every entry, anyone else only what they may see; the browser Supabase client can't read the diary 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, notes and visibility 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.

Bulk visibility (owner): POST /api/diary/visibility with { diary, ids, visibility } sets up to 500 of your entries at once (Movies, TV or Food). It changes only your own rows, counts any other ids as skipped, and returns each entry's visibility before and after, which Undo writes back.

Privacy: Private by default. Each entry has a visibility: Private (only you; new entries, and every entry logged before diaries went private), Friends only (your connections) or Public (anyone). Visitors to your diary see only the entries they may see, and its counts and years come from those alone. A film's Activity section follows the same rule. Calendar mirrors of your watches stay private.

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.