ā Nextt - Multi-Provider Recommendation Dashboard
A self-hosted, multi-provider recommendation dashboard with TMDB enrichment and Overseerr integration ā finally, a smart, personalized way to find what to watch next. Supports both Plex and Jellyfin! Its also Fully OpenSource - https://github.com/WhiskeyCoder/Nexttā
UPDATE: Fully Operational Now
ā NOTES:
I am aware some users are having issues with the docker hosted image not correctly loading front and backend at the same time. I am currently looking into it, it currently seems to be only a handful having the issue
ā šÆ What is Nextt?
Nextt is a beautiful, self-hosted web application that generates intelligent, personalized content recommendations for Plex users based on their viewing history and personal star ratings. Instead of surfacing generic trending content, Nextt reverse-engineers your Plex ratings and finds media that aligns with your 4ā
ā5ā
tastes.
ā Core Use Case
"I gave that show 5 stars in Plex. What else would I love based on that exact vibe?"
ā ⨠Features
š¬ Smart Recommendations : Get personalized movie and TV show recommendations based on your ratings or watch history
šŗ Multi-Provider Support : Works with both Plex and Jellyfin media servers
šÆ Watch History Mode : Generate recommendations from recent watch history (perfect for users who don't rate content)
š Beautiful Dark UI : Modern, responsive dark mode interface with smooth animations
šÆ Advanced Filtering : Filter by genre, country, language, rating, Korean content, and anime
š± Responsive Design : Works perfectly on desktop, tablet, and mobile devices
š Overseerr Integration : One-click content requests directly to your Overseerr instance
šØ Rich Metadata : TMDB-powered content cards with posters, summaries, and detailed information
āļø Easy Configuration : Simple settings panel with connection testing
š Auto-Sync : Manual and automatic library synchronization
ā š Quick Start
ā Prerequisites
Node.js 18+ and npm
Plex Media Server OR Jellyfin Media Server with content
TMDB API account (free)
Overseerr instance (optional but recommended)
ā Installation
Clone the repository
git clone https://github.com/WhiskeyCoder/nextt.git
cd nextt
Copy
Install dependencies
Start the development server
Open your browser
Navigate to http://localhost:5173
ā āļø Configuration
ā Required API Keys
ā 1. TMDB API Key
Go to TMDBā
Create a free account
Navigate to Settings ā API
Request an API key (choose "Developer" option)
Copy your API key
ā 2. Media Server Configuration
For Plex:
Open Plex Web App
Play any media item
Open browser developer tools (F12)
Go to Network tab
Look for requests containing X-Plex-Token parameter
Copy the token value
Alternative Plex method:
Visit: https://plex.tv/claim
Copy the claim token
Use it to authenticate your server
For Jellyfin:
Open your Jellyfin web interface
Go to Dashboard ā Users ā Select your user
Copy your User ID
Go to Dashboard ā API Keys
Create a new API key and copy it
ā 3. Overseerr/Jellyseerr API Key (Optional)
For Overseerr:
Open your Overseerr web interface
Go to Settings ā General
Copy the API Key from the "API Key" section
For Jellyseerr (Alternative to Overseerr):
Open your Jellyseerr web interface
Go to Settings ā General
Copy the API Key from the "API Key" section
Enable "Use Jellyseerr instead of Overseerr" in Nextt settings
ā Setup Steps
Navigate to Settings tab in the Nextt interface
Select your media server provider (Plex or Jellyfin)
Enter your API credentials:
For Plex : Server URL (e.g., http://localhost:32400) and Token
For Jellyfin : Server URL (e.g., http://localhost:8096), API Key, and User ID
TMDB API Key
Overseerr : URL (e.g., http://localhost:5055) and API Key (optional)
Jellyseerr : URL (e.g., http://localhost:5055) and API Key (optional, alternative to Overseerr)
Configure recommendation preferences:
Use Watch History : Enable to generate recommendations from recent watch history instead of ratings
Watch History Limit : Number of recently watched items to use (10-50, default: 25)
Rating threshold (3+, 4+, or 5 stars only)
Number of recommendations per seed content
Test connections using the built-in connection tester
Save configuration
Sync your library using the "Sync Library" button
ā š® How to Use
ā Dashboard Navigation
Movies Tab : View movie recommendations based on your highly-rated films
TV Shows Tab : Browse TV series recommendations from your favorite shows
Filters Sidebar : Narrow down recommendations by genre, country, language, rating, or content type
ā Content Discovery
Browse Recommendations : Content is organized by your ratings or recent watch history
View Details : Each card shows poster, summary, genre, rating, and metadata
Filter Content : Use sidebar filters to find specific types of content
Request Content : Click "I want to watch this" to send requests to Overseerr or Jellyseerr
ā Recommendation Modes
Rating-Based : Uses your 4-5 star ratings to find similar content (top 10 most recent)
Watch History : Uses your recently watched content (last 30 days) to generate recommendations (configurable, default: 25 items)
ā Special Filters
š°š· Korean Content : Toggle to show only Korean movies and TV shows
š Anime Content : Filter to display only Japanese anime content
Rating Filter : Set minimum rating thresholds (7.0+, 8.0+, 9.0+)
ā šļø Architecture
ā Frontend Stack
React 18 with TypeScript
Tailwind CSS for styling
Lucide React for icons
Vite for build tooling
ā Current Implementation
This is a frontend-only demo showcasing the complete UI/UX. The current version uses:
Mock data to demonstrate functionality
Simulated API responses for testing
Local state management
ā Production Architecture (Planned)
āāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāā
ā React Frontend ā ā FastAPI Backend ā ā External APIs ā
ā ā ā ā ā ā
ā ⢠Dashboard āāāāāŗā ⢠Plex Client āāāāāŗā ⢠Plex Server ā
ā ⢠Settings ā ā ⢠TMDB Client ā ā ⢠TMDB API ā
ā ⢠Filters ā ā ⢠Overseerr/Jellyseerr API ā ā ⢠Overseerr/Jellyseerr ā
ā ⢠Content Cards ā ā ⢠SQLite DB ā ā ā
āāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāā
Copy
version: '3.8'
services:
nextt-backend:
build: ./backend
ports:
- "8000:8000"
volumes:
- ./config:/app/config
- ./db:/app/db
environment:
- PLEX_URL=${PLEX_URL}
- PLEX_TOKEN=${PLEX_TOKEN}
- TMDB_API_KEY=${TMDB_API_KEY}
- OVERSEERR_URL=${OVERSEERR_URL}
- OVERSEERR_API_KEY=${OVERSEERR_API_KEY}
- JELLYSEERR_URL=${JELLYSEERR_URL}
- JELLYSEERR_API_KEY=${JELLYSEERR_API_KEY}
restart: unless-stopped
nextt-frontend:
build: ./frontend
ports:
- "3000:3000"
depends_on:
- nextt-backend
restart: unless-stopped
Copy
ā š§ Development
ā Project Structure
nextt/
āāā src/
ā āāā components/ # React components
ā ā āāā Dashboard.tsx # Main dashboard
ā ā āāā ContentCard.tsx # Individual content cards
ā ā āāā Settings.tsx # Configuration panel
ā ā āāā ...
ā āāā data/
ā ā āāā mockData.ts # Demo data
ā āāā App.tsx # Main application
āāā public/ # Static assets
āāā README.md
Copy
ā Available Scripts
npm run dev - Start development server
npm run build - Build for production
npm run preview - Preview production build
npm run lint - Run ESLint
ā Contributing
Fork the repository
Create a feature branch (git checkout -b feature/amazing-feature)
Commit your changes (git commit -m 'Add amazing feature')
Push to the branch (git push origin feature/amazing-feature)
Open a Pull Request
ā šØ Design Philosophy
Nextt follows Apple-inspired design principles:
Simplicity : Clean, uncluttered interface
Consistency : Uniform spacing, typography, and interactions
Responsiveness : Fluid layouts that work on any device
Accessibility : High contrast ratios and keyboard navigation
Performance : Smooth animations and fast loading times
ā š® Roadmap
ā Phase 1: Core Backend (In Progress)
FastAPI backend implementation
Plex API integration
TMDB API client
SQLite database setup
Overseerr integration
ā Phase 2: Advanced Features
Email digest notifications
Jellyfin support ā
Watch history recommendations ā
Trakt.tv integration
Multi-user support
Shared recommendation lists
Social features
Plugin system
Advanced analytics
ā š License
This project is licensed under the MIT License - see the LICENSEā file for details.
ā š Acknowledgments
Plex : For the amazing media server platform
TMDB : For comprehensive movie and TV metadata
Overseerr : For seamless content request management
The Self-Hosted Community : For inspiration and feedback
Made with ā¤ļø for the self-hosted community