Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/transitive-bullshit/next-movie

Pick your next movie using Next.js 13
https://github.com/transitive-bullshit/next-movie

imdb movie movie-recommendation movie-search movies nextjs tmdb

Last synced: 3 days ago
JSON representation

Pick your next movie using Next.js 13

Awesome Lists containing this project

README

        



Pick your next movie using Next.js 13


Build Status
MIT License
Prettier Code Formatting


An example Next.js 13 app built using the new router, server components, and all the latest hotness. 🔥

- [About](#about)
- [App Features](#app-features)
- [Implementation Features](#implementation-features)
- [Screenshots](#screenshots)
- [List View](#list-view)
- [Grid View](#grid-view)
- [Single Movie View](#single-movie-view)
- [Roadmap](#roadmap)
- [Movie Database](#movie-database)
- [Contributing](#contributing)
- [License](#license)

## About

Building a better app for finding great movies has been on my proverbial todo list for awhile. With Next.js 13's paradigm shift, I thought it'd be the perfect time to build it and open source my learnings along the way.

[Check it out live here](https://next-movie.transitivebullsh.it).

## App Features

- Advanced movie search by rating, genre, release date, etc
- All movies include **YouTube trailers**
- Most movies include **IMDB rating, RT audience score, and RT critic score**
- Supports grid view, list view, and single movie view
- High quality movie database

## Implementation Features

- New `/app` dir
- Blurred image placeholders
- Dynamic OG images
- Dark mode
- Hosted on **Vercel**
- ORM using **Prisma** + **Postgres**
- UI components built using **Radix UI**
- Styled using **CSS Modules**
- Data fetching using **SWR**
- Validations using **Zod**
- Written in **TypeScript**
- Fully **Open Source**

## Screenshots

#### List View


List view dark mode
       
List view light mode

#### Grid View


Grid view dark mode
       
Grid view light mode

#### Single Movie View


Single movie view dark mode
       
Single movie view light mode

## Roadmap

> **Warning**
> This app is a work in progress. I'm building this in public. You can follow the progress on Twitter [@transitive_bs](https://twitter.com/transitive_bs).

- [x] [Movie database](https://github.com/transitive-bullshit/populate-movies)
- [x] Search functionality
- [x] Grid view
- [x] List view
- [x] Single view (original idea for browsing movies using a "next movie" button)
- [x] Dynamic OG images for movies
- [x] Dynamic OG images for genres
- [x] Dark mode
- [x] About page
- [x] Mobile friendly

Post-v1.0:

- [ ] Streaming service availability + filters
- [ ] Add TV series
- [ ] Advanced search by language, country, etc.
- [ ] Better movie detail page design
- [ ] Person detail page
- [ ] User auth and accounts
- [ ] Watchlist
- [ ] Seen list + user ratings
- [ ] Improve text search (fuzzy + weighting)
- [ ] Weight single view movie selection by `relevancyScore`
- [ ] Automate scripts to keep movie DB up-to-date
- [ ] Improve access to Rotten Tomatoes metadata
- [ ] Add top X movies pages

## Movie Database



Populates a full database of movies from TMDB and IMDB into Postgres.

Under the hood, `next-movie` uses [populate-movies](https://github.com/transitive-bullshit/populate-movies) to generate it's high quality movie database, featuring:

- ~73k movies (filtered from ~750k TMDB "movies")
- Metadata from TMDB, IMDB, and Rotten Tomatoes
- Automatable pipeline
- Custom post-processing
- Selects the best available YouTube trailer for every movie
- Relevancy scores using a combination of popularity, rating, and release date
- Nuanced foreign movie detection that looks at more than just language/country
- [LQIP](https://github.com/transitive-bullshit/lqip-modern) preview image generation for all movie images
- Basic text index for searching
- Open source using TS + Prisma + Postgres

## Contributing

See the [contribution guide](contributing.md) and join our amazing list of [contributors](https://github.com/transitive-bullshit/next-movie/graphs/contributors).

## License

MIT © [Travis Fischer](https://transitivebullsh.it)

Support my open source work by [sponsoring me](https://github.com/sponsors/transitive-bullshit) or following me on twitter twitter


TMDB
       
IMDB
       
Rotten Tomatoes