CinePlay Hub is your all-in-one streaming companion that consolidates content from multiple platforms into a seamless, modern interface. Powered by the TMDB API, it enables effortless browsing and discovery of movies and TV shows β all in one place.
- ποΈ Modern, responsive interface for browsing movies and shows
- π Powerful, cross-category search functionality
- π± Fully mobile-friendly with touch gesture support
- π― Discover content via intuitive, category-based navigation
- πΎ Maintain a personalized watchlist
- π’ Configurable announcement banner for updates and alerts
- π Smooth UI with elegant animations and transitions
- β‘ Fast performance powered by React and Vite
- Node.js v22.x or higher
- npm v10.x or higher
- A valid TMDB API key β Get one here
# 1. Clone the repository
git clone <YOUR_GIT_URL>
# 2. Navigate to the project directory
cd cineplay-hub
# 3. Install dependencies
npm install
# 4. Set up environment variables
cp .env.example .env
# Edit .env and insert your TMDB API key
# 5. Start the development server
npm run dev- Obtain your TMDB API key from TMDB's website
- Rename
.env.exampleto.env - Replace
your_tmdb_api_key_herewith your actual API key
This project uses modern web technologies:
- Vite β Next-gen frontend tooling
- TypeScript β Type-safe JavaScript
- React β UI component library
- shadcn/ui β Accessible UI components
- Tailwind CSS β Utility-first CSS framework
- React Query β Efficient data handling
- Framer Motion β Smooth animations
- React Router β Client-side routing
- Fork this repository
- Connect your repo to Netlify
- Configure the build settings:
- Build Command:
npm run build - Publish Directory:
dist
- Build Command:
- Add environment variables
- Deploy
- Fork the repo
- Import it into Vercel
- Add environment variables
- Deploy
- Set the
baseoption invite.config.ts - Run
npm run build - Deploy the
distdirectory to GitHub Pages
npm install -g firebase-tools
firebase login
firebase init hosting
npm run build
firebase deployEdit public/config/announcement.json to update the in-app announcement banner:
{
"enabled": true,
"message": "Your message here",
"link": "/optional/url",
"backgroundColor": "#2B8CBE",
"textColor": "#FFFFFF"
}- Changes take effect within 1 hour (adjustable via cache config).
- Users can dismiss the banner; the dismissal is stored in local storage.
We welcome contributions!
- Fork the repo
- Create a feature branch:
git checkout -b feature/awesome-feature - Commit your changes:
git commit -m "Add awesome feature" - Push to GitHub:
git push origin feature/awesome-feature - Open a Pull Request
Please ensure you:
- Follow existing code style
- Use TypeScript for all new code
- Write meaningful commit messages
- Update documentation where necessary
- Use
shadcn/uicomponents when applicable - Add error handling and keep performance in mind
This project is licensed under the MIT License. See the LICENSE file for details.
We are committed to a welcoming environment. Please read our Code of Conduct before contributing.
If you encounter issues:
- Check Issues for known problems
- Review the Documentation if available
- If the issue exists in the upstream version, raise it there
- Otherwise, open a new issue and provide:
- Node.js version
- npm version
- Browser and version
- Error messages
- Steps to reproduce
- Expected vs actual behavior
- The project file tree is available in the root directory
sw.jsand ad scripts are located in/public/sw.jsand/index.htmlrespectively- To disable ads, delete
sw.jsand remove the related code fromindex.html - If you keep it, thanks! We receive revenue support from it
- To disable ads, delete
- Redirects from video servers are external and not controlled by us