Your AI Bending Movie & TV Show Recommender
Elemental Recs is an AI-powered web application that provides personalized movie and TV show recommendations. Users input three movies or TV shows they enjoy, and the system leverages the Gemini 2.0 Flash model and The Movie Database (TMDB) API to generate tailored suggestions. The application features a beautiful Avatar: The Last Airbender themed interface built with Next.js, Shadcn UI, and Tailwind CSS.
- Personalized Recommendations: Input 3 favorite titles and get 5 tailored suggestions
- AI-Powered Analysis: Uses Gemini 2.0 Flash to analyze preferences and provide intelligent recommendations
- IMDb Integration: Direct links to IMDb pages for each recommendation
- Avatar Theme: Beautiful Water Tribe-inspired design with elemental animations
- Responsive Design: Works seamlessly on desktop and mobile devices
- Real-time Validation: Ensures accurate movie/show data through TMDB API verification
- Frontend: Next.js 15 (App Router), React 19, TypeScript
- UI Components: Shadcn UI, Tailwind CSS 4
- AI Model: Google Gemini 2.0 Flash
- Movie Data: The Movie Database (TMDB) API
- Icons: Lucide React
- Styling: Avatar: The Last Airbender Water Tribe theme
Before running this project, you'll need:
- Node.js (version 18 or higher)
- npm or yarn package manager
- Gemini API Key from Google AI Studio
- TMDB API Key from The Movie Database
git clone https://github.com/your-username/elemental-recs.git
cd elemental-recs
npm install
Create a .env.local
file in the root directory and add your API keys:
# Gemini AI API Key
GEMINI_API_KEY=your_gemini_api_key_here
# TMDB API Key
TMDB_API_KEY=your_tmdb_api_key_here
Gemini API Key:
- Visit Google AI Studio
- Sign in with your Google account
- Create a new API key
- Copy the key to your
.env.local
file
TMDB API Key:
- Visit The Movie Database
- Create an account or sign in
- Go to Settings > API
- Request an API key (choose "Developer" option)
- Copy the API key to your
.env.local
file
npm run dev
Open http://localhost:3000 in your browser to see the application.
The application features a Water Tribe-inspired theme from Avatar: The Last Airbender:
- Primary Colors: Deep blues and light blues
- Accent Colors: Ice whites and water-inspired tones
- Animations: Custom water ripple and air floating effects
- Icons: Elemental symbols (Water, Air, Fire, Earth)
- Typography: Clean, readable fonts with thematic styling
elemental-recs/
โโโ src/
โ โโโ app/
โ โ โโโ api/
โ โ โ โโโ recommendations/
โ โ โ โโโ route.ts # API endpoint for recommendations
โ โ โโโ globals.css # Global styles and theme variables
โ โ โโโ layout.tsx # Root layout with metadata
โ โ โโโ page.tsx # Main application page
โ โโโ components/
โ โ โโโ ui/ # Shadcn UI components
โ โโโ lib/
โ โโโ utils.ts # Utility functions
โโโ public/ # Static assets
โโโ package.json # Project dependencies
โโโ README.md # Project documentation
Generates movie/TV show recommendations based on user input.
Request Body:
{
"title1": "Avatar: The Last Airbender",
"title2": "Studio Ghibli films",
"title3": "The Lord of the Rings"
}
Response:
{
"recommendations": [
{
"title": "Princess Mononoke",
"year": 1997,
"type": "Movie",
"brief_reasoning": "Like your favorites, this combines environmental themes with epic storytelling and rich world-building.",
"imdb_id": "tt0119698",
"imdb_url": "https://www.imdb.com/title/tt0119698/"
}
]
}
- Input Your Favorites: Enter three movies or TV shows you love in the input fields
- Generate Recommendations: Click "Find My Next Binge" to get AI-powered suggestions
- Explore Results: Browse through 5 personalized recommendations with explanations
- Visit IMDb: Click "View on IMDb" to learn more about each recommendation
The application uses a carefully crafted prompt for Gemini 2.0 Flash that:
- Analyzes common themes, genres, and elements across your input titles
- Considers narrative style, character archetypes, tone, and pacing
- Provides diverse yet relevant suggestions
- Includes brief explanations for each recommendation
- Validates AI-generated titles against real movie/show data
- Retrieves accurate release years and IMDb IDs
- Ensures reliable linking to IMDb pages
- Handles both movies and TV shows seamlessly
- Custom CSS animations inspired by elemental bending
- Water Tribe color palette with blues and whites
- Elemental icons that rotate through Water, Air, Fire, and Earth
- Subtle background patterns and hover effects
- Push your code to GitHub
- Visit Vercel and import your repository
- Add your environment variables in the Vercel dashboard
- Deploy!
The application can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- Digital Ocean App Platform
- AWS Amplify
- User Accounts: Save recommendation history and preferences
- Advanced Filtering: Filter by genre, release year, streaming availability
- Social Features: Share recommendations with friends
- Streaming Integration: Show where to watch each recommendation
- Mobile App: React Native version for iOS and Android
- Theme Variants: Other Avatar nations (Fire Nation, Earth Kingdom, Air Nomads)
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the MIT License - see the LICENSE file for details.
- Avatar: The Last Airbender for the amazing world and aesthetic inspiration
- Google Gemini for the powerful AI recommendation engine
- The Movie Database for comprehensive movie and TV show data
- Shadcn UI for beautiful, accessible components
- Next.js Team for the excellent framework
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with a detailed description
- Include error messages and steps to reproduce
May the elements guide your next watch! ๐๐ฅ๐ช๏ธ๐ป