The New York Times offered The 100 Best Movies of the 21st Century as chosen by ‘creators’ (producers, directors, actors, etc.).

The movies are listed below, with links to the synopsis in the list (💯) and the New York Times review of the original movie (📄). If we haven’t seen the movie, there is a link to where to watch (👁).

Movies we’ve watched after the list came out have a check mark (✓). If we’ve written our own notes after watching the movie, the check mark is green (✅).

Clicking on a row brings up our notes and information from TMDB (The Movie Database) below the table. Directors, writers, or actors appearing as links have more than one movie in the top 100. Clicking on the link selects the other movies the person participates in; clicking again reverts to the full list.

New York Times Best Movies of the 21st Century
# Title  
Titles and links are from the New York Times. 💯 Top 100 📄 Review 👁 Where to watch. ✓ Watched ✅ Our notes.

() – Genre: . Popularity: .

Directed by . Screenplay / writing by .

Starring .

Notes:

Reflections on the top 100 list

Viewing these has helped to develop criteria for evaluating movies. The movies at the top of the list combine pillars of compelling themes, excellent acting, unique cinematography, and a strong directorial presence. Movies further down the list seem generally to compromise one (or more) of these pillars, and then further down still to develop individual components less fully.

Themes

The future: Mad Max: Fury Road, Children of Men, Her, Wall-E.

Social commentary: Parasite, The Departed, Bridesmaids.

Relationship: In The Mood for Love, Phantom Thread, Anatomy of a Fall, Bridesmaids.

Personal growth: Amélie, Lady Bird, Frances Ha, Crouching Tiger, Hidden Dragon, Spirited Away, The Royal Tenenbaums, Superbad.

Groundhog day: Mulholland Drive, Eternal Sunshine of the Spotless Mind.

Animation: Spirited Away, Wall-E, Up.

Implementation notes

I used the SQLite WASM to provide a database served from static GitHub pages. This is not a particularly practical use case (because the database is read-only), but still a good learning experience. It is also pretty neat, on reflection, to have the client providing significant computing. A challenge was to wait for the database to be loaded; the solution uses a JavaScript Promise and setInterval(). The database is updated outside of the main app using an R / Shiny script on my laptop, then pushing the database to GitHub.

The implementation also involved learning more about directly working with DataTables and the HTML Document Object Model (DOM), including introducing interactivity via events. The Javascript is now about 300 lines long, so some attention is paid to modular code organization.

Google Gemini helped orient me, especially on how to wait for the database to load, and how to manipulate the DOM.

The top 100 list and links to reviews and ‘where to watch’ are from the New York Times. The data were scraped from the web page using R and the xml2 and dplyr packages.

Director, writer, actor and genre information is from TMDB (The Movie Database), with JSON responses transformed using rjsoncons. This information was obtained using the TMDB API but is not endorsed or certified by TMDB.