TriggerScore is a multilingual movie rating platform focused on evaluating older films by their "trigger potential" (for example sexism, racism, cringe, and other factors). Users can browse movies, view aggregated community scores, submit ratings/comments, and filter titles by streaming provider.
- Production:
https://triggerscore.netlify.app
- Nuxt 4 + TypeScript
- Pinia
- Tailwind CSS
- Netlify Functions (serverless API)
- MongoDB Atlas
- TMDB API (movie metadata and provider data)
@nuxtjs/i18nfor localization
- Multilingual UI (
de,en,es,fr,us) - Aggregated trigger scores per movie:
rating_totalrating_sexismrating_racismrating_othersrating_cringe- Top 10 lists by score category
- Recent ratings and comments
- Provider-based filtering (Netflix, Prime, Disney+, WOW/Sky)
- Movie detail pages with similar titles and trailers
- Netlify contact form integration
app/ # Nuxt app (pages, components, store, plugins)
server/api/ # Nuxt server routes (TMDB proxy endpoints, image proxy)
netlify/functions/ # Serverless functions for scores, movies, providers, posting data
scripts/ # Utility scripts (e.g. TMDB sync for DB movie collections)
public/ # Static assets and animations
i18n/locales/ # Locale JSON files- Node.js
22.14(see.nvmrc) - npm
- MongoDB Atlas database
- TMDB API key
Create a local .env file in the project root:
TMDB_API_KEY=your_tmdb_api_key
API_KEY=your_tmdb_api_key
DATABASE_PASSWORD=your_mongodb_password
DATABASE_NAME=triggerscore
NUXT_PUBLIC_IS_LOCAL=trueNotes:
TMDB_API_KEYis used by Nuxt server routes/runtime config.API_KEYis used by Netlify functions and sync scripts.DATABASE_PASSWORDis used to connect to MongoDB Atlas.DATABASE_NAMEis used byscripts/syncMovies.js.
npm installStart Nuxt dev server:
npm run devIf you need Netlify Functions locally (/.netlify/functions/*), run with Netlify CLI:
npx netlify devNuxt is configured to proxy function requests in development to:
http://localhost:8888/.netlify/functions/
npm run build
npm run previewOptional static generation:
npm run generateSync localized movie metadata from TMDB into MongoDB collections:
npm run task:sync-moviesThis script reads movie IDs from the scores collection and updates locale collections:
movies_enmovies_usmovies_frmovies_esmovies_de
GET /.netlify/functions/fetchScoresAndTop10sAndStatsGET /.netlify/functions/fetchMovies?locale=<de|en|es|fr|us>GET /.netlify/functions/fetchMovieById?id=<movieId>GET /.netlify/functions/fetchProviders?locale=<locale>POST /.netlify/functions/postData(submit rating + comment)
GET /api/movie/:id?locale=<locale>GET /api/providers/:idGET /api/fetchSimilarMovies?movie_id=<id>&locale=<locale>GET /api/bondMovies?locale=<locale>GET /api/poster?poster_path=<tmdb_path>GET /api/og-image?poster_path=<tmdb_path>
Project is set up for Netlify:
- Functions directory:
netlify/functions - Config file:
netlify.toml
Set all required production environment variables in Netlify before deploy.
No license file is currently defined in this repository.