Skip to content

kimkee/nextio

Repository files navigation

Next.io Logo

Nextio: Cinematic Content Universe

A modern, highly-performant movie and TV show exploration platform powered by Next.js 14 and TMDB.

View Live Demo · Getting Started · Tech Stack

Next JS TypeScript Tailwind CSS Supabase Vercel TMDB API


⚡ Overview

Nextio is a full-stack media discovery application built with the newest Next.js App Router architecture. It leverages the global TMDB Database to fetch deep metadata for cinema and television, seamlessly integrating with Supabase Auth & Database for robust user progression, favorites, and real-time backend state management.

Crafted with a focus on UI/UX, the application boasts dynamic animations, infinite horizontal swipers for categorized lists, and a rich cinema-focused aesthetic.

✨ Key Features

  • 🎟 Real-time Media Feeds: Fetching live trending and top-rated movies/TV shows via the TMDB API.
  • 🔐 Authentication via Supabase: Secure session management and social/email login wrappers handled gracefully on the edge.
  • 🚀 Server-Side Rendering (SSR): Engineered using Next.js 14 Server-side & Client-side boundaries to achieve extreme SEO friendliness and sub-second TTL routing.
  • 🎨 Responsive & Glassmorphic UI: High-end minimalist design powered by Tailwind CSS and custom vanilla CSS modules.
  • Optimized Caching: Implementation of Promise Singleton Caching for deep backend calls, completely bypassing unnecessary DB I/O drops on navigation.

🛠 Tech Stack

Category Technologies
Framework Next.js (App Router)
Language TypeScript
Styling Tailwind CSS / PostCSS
Database & Auth Supabase
Media Data TMDB API
UI Components Swiper.js, FontAwesome
Deployment Vercel Platform

🚀 Getting Started

If you want to run this application locally, follow these steps.

Prerequisites

You will need Node.js (v18+) and a package manager (npm/yarn/pnpm). You also need accounts on Supabase and TMDB to issue API keys.

1. Clone the repository

git clone https://github.com/kimkee/nextio.git
cd nextio

2. Environment Setup

Create a .env.local file in the root directory and embed your API credentials:

# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key

# TMDB Configuration
NEXT_PUBLIC_TMDB_API_KEY=your_tmdb_api_key

3. Installation & Run

# Install dependencies
npm install

# Run the local development server
npm run dev

Open http://localhost:9017 with your browser to see the result.

⚙️ Performance Architecture Notes

To prevent UI "freezing" bugs seen in modern SPAs:

  • Streaming UI: Routes implement loading.tsx <Suspense> boundaries to unblock the Next.js router main thread, ensuring immediate navigation transitions.
  • Node.js Runtime Target: The default Edge Runtime was explicitly avoided on heavy client-bundled components to circumvent V8 Isolate cold-start penalties when importing large UI libraries (like Swiper). Core pages utilize Vercel's caching Node.js Serverless architecture for stable performance.
  • API Deduplication: Database auth checking functions rely on programmatic promise-locks to prevent client components from shotgunning duplicate HTTP requests to Supabase concurrently.

📜 License

MIT

About

Nextjs + Supabase + Tailwindcss + TMDB API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors