A Netflix-inspired streaming platform with a sleek, dark, anime/cyberpunk aesthetic. Built with Next.js 14, Tailwind CSS, and TypeScript. Uses TMDB for content and GitHub as a serverless JSON database.
- Sleek UI: "Void" aesthetic with dark gradients, glassmorphism, and smooth animations.
- TMDB Integration: Fetches trending, popular, and top-rated movies/shows.
- User Accounts: Email/password signup and login.
- GitHub Database: Stores user data (profiles, lists, history) in a private GitHub repository.
- My List: Save content to watch later.
- Watch History: Tracks what you've watched.
- Continue Watching: Resumes playback from where you left off.
- Recommendations: Personalized suggestions based on watch history.
- Multiple Profiles: Create and manage multiple profiles per account.
-
Clone the repository.
-
Install dependencies:
npm install
-
Configure Environment Variables:
- Copy
env.exampleto.env.local. - Fill in the required values:
NEXT_PUBLIC_TMDB_API_KEY: Get from TMDB.GITHUB_TOKEN: Generate a Personal Access Token (PAT) on GitHub withreposcope.GITHUB_OWNER: Your GitHub username.GITHUB_REPO: Create a new private repository (e.g.,voidstream-db) and enter its name here.JWT_SECRET: Generate a random string for session security.
- Copy
-
Initialize Database:
- Ensure your
GITHUB_REPOexists. The app will automatically create/update JSON files in it.
- Ensure your
-
Run Locally:
npm run dev
Open http://localhost:3000.
Deploy to Vercel:
- Push your code to a GitHub repository.
- Import the project in Vercel.
- Add the Environment Variables in Vercel project settings.
- Deploy!
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Icons: Lucide React
- Auth: JWT + bcrypt
- Database: GitHub JSON (via API)