Skip to content

muris11/rfx_nextjs

Repository files navigation

🎬 RFX - Watch Beyond Borders

RFX Banner

Modern streaming platform untuk Drama, Anime, Komik, dan Shorts

Next.js TypeScript TailwindCSS Framer Motion License

🌐 Live Demo β€’ πŸ“– Documentation β€’ πŸš€ Quick Start β€’ πŸ’¬ Report Bug


πŸ“‹ Table of Contents


🌟 Overview

RFX adalah platform streaming modern yang menyediakan akses ke berbagai konten entertainment dari seluruh dunia. Dengan desain yang terinspirasi dari Netflix dan dioptimalkan untuk performa maksimal, RFX memberikan pengalaman menonton yang seamless di semua device.

✨ Highlights

  • 🎯 Netflix-inspired UI/UX - Modern, clean, dan intuitive
  • ⚑ Lightning Fast - Optimized dengan Next.js 16 & Turbopack
  • πŸ“± PWA Ready - Install sebagai app di mobile & desktop
  • 🎨 Beautiful Animations - Smooth micro-interactions dengan Framer Motion
  • πŸŒ™ Dark Theme - Eye-friendly dengan modern color palette
  • πŸ” Smart Search - Auto-suggest dengan thumbnail preview
  • πŸ’Ύ Local Storage - Track favorites & watch history
  • 🎭 Multi-Category - Drama, Anime, Komik, Shorts dalam satu platform

πŸš€ Features

🎬 Content Discovery

  • Hero Carousel - Full-screen cinematic showcase dengan auto-play
  • Top 10 Trending - Special section dengan numbered rankings
  • Content Rows - Horizontal scrollable dengan lazy loading
  • Continue Watching - Resume dari terakhir kali ditonton
  • Random Discover - Temukan konten baru secara random

🎨 UI/UX Excellence

  • Quick View Modal - Preview info tanpa pindah halaman
  • Backdrop Preview - Hover untuk lihat backdrop image
  • Smooth Transitions - Page & component transitions yang fluid
  • Responsive Design - Perfect di mobile, tablet, dan desktop
  • Glassmorphism - Modern glass effects di seluruh UI
  • Gradient Typography - Eye-catching section titles

βš™οΈ Technical Features

  • Server-Side Rendering - Fast initial load dengan Next.js SSR
  • API Proxy - Seamless integration dengan multiple APIs
  • Image Optimization - Blur placeholder & lazy loading
  • Code Splitting - Automatic bundle optimization
  • Error Handling - Graceful error boundaries & fallbacks
  • TypeScript - Full type safety

πŸ“± PWA Capabilities

  • Offline Support - Service worker untuk offline access
  • Add to Home Screen - Install sebagai native app
  • Push Notifications - (Coming soon)
  • Background Sync - (Coming soon)

πŸ› οΈ Tech Stack

Core Framework

Styling & UI

State & Data

  • React Hooks - useState, useEffect, useCallback, useRef
  • Local Storage - Client-side persistence
  • Server Components - Next.js server-side rendering

Development Tools

External APIs

  • Sapimu API - Drama & movies data
  • Sansekai API - Anime data
  • Custom Proxy - API routing & caching

🏁 Getting Started

Prerequisites

  • Node.js 18.x atau lebih baru
  • npm atau yarn atau pnpm
  • Git

Installation

  1. Clone repository

    git clone https://github.com/muris11/rfx_nextjs.git
    cd rfx_nextjs
  2. Install dependencies

    npm install
    # atau
    yarn install
    # atau
    pnpm install
  3. Setup environment variables

    cp .env.example .env.local

    Edit .env.local dan tambahkan konfigurasi yang diperlukan:

    NEXT_PUBLIC_APP_URL=https://rfx.based.my.id
    NEXT_PUBLIC_APP_NAME=RFX
  4. Run development server

    npm run dev
    # atau
    yarn dev
    # atau
    pnpm dev
  5. Open browser

    http://localhost:3000
    

Build for Production

npm run build
npm start

πŸ“ Project Structure

rfx/
β”œβ”€β”€ app/                          # Next.js App Router
β”‚   β”œβ”€β”€ anime/                    # Anime pages
β”‚   β”‚   β”œβ”€β”€ [id]/                 # Detail page
β”‚   β”‚   β”‚   └── watch/            # Watch page
β”‚   β”‚   β”œβ”€β”€ AnimeList.tsx         # List component
β”‚   β”‚   └── page.tsx              # Main page
β”‚   β”œβ”€β”€ drama/                    # Drama pages (similar structure)
β”‚   β”œβ”€β”€ komik/                    # Komik pages (similar structure)
β”‚   β”œβ”€β”€ shorts/                   # Shorts pages (similar structure)
β”‚   β”œβ”€β”€ api/                      # API routes
β”‚   β”‚   β”œβ”€β”€ sansekai/[...path]/   # Anime API proxy
β”‚   β”‚   └── sapimu/[...path]/     # Drama API proxy
β”‚   β”œβ”€β”€ favorites/                # Favorites page
β”‚   β”œβ”€β”€ history/                  # Watch history
β”‚   β”œβ”€β”€ search/                   # Search page
β”‚   β”œβ”€β”€ help/                     # Help center
β”‚   β”œβ”€β”€ HomeContent.tsx           # Homepage content
β”‚   β”œβ”€β”€ layout.tsx                # Root layout
β”‚   β”œβ”€β”€ page.tsx                  # Homepage
β”‚   └── globals.css               # Global styles
β”‚
β”œβ”€β”€ components/                   # Reusable components
β”‚   β”œβ”€β”€ content/                  # Content components
β”‚   β”‚   β”œβ”€β”€ Card.tsx              # Content card dengan quick view
β”‚   β”‚   β”œβ”€β”€ Carousel.tsx          # Hero carousel
β”‚   β”‚   β”œβ”€β”€ ContentRow.tsx        # Horizontal content row
β”‚   β”‚   β”œβ”€β”€ Top10Row.tsx          # Top 10 section
β”‚   β”‚   β”œβ”€β”€ ContinueWatching.tsx  # Continue watching row
β”‚   β”‚   β”œβ”€β”€ SearchBar.tsx         # Search dengan suggestions
β”‚   β”‚   └── VideoPlayer.tsx       # Video player
β”‚   β”œβ”€β”€ layout/                   # Layout components
β”‚   β”‚   β”œβ”€β”€ Navbar.tsx            # Navigation bar
β”‚   β”‚   β”œβ”€β”€ Footer.tsx            # Footer
β”‚   β”‚   β”œβ”€β”€ Sidebar.tsx           # Mobile sidebar
β”‚   β”‚   └── BottomNav.tsx         # Mobile bottom nav
β”‚   β”œβ”€β”€ ui/                       # UI primitives
β”‚   β”‚   β”œβ”€β”€ Button.tsx            # Button component
β”‚   β”‚   β”œβ”€β”€ Badge.tsx             # Badge component
β”‚   β”‚   └── Skeleton.tsx          # Loading skeletons
β”‚   └── providers/                # Context providers
β”‚       └── Providers.tsx         # App providers wrapper
β”‚
β”œβ”€β”€ lib/                          # Utilities & helpers
β”‚   β”œβ”€β”€ api/                      # API utilities
β”‚   β”œβ”€β”€ hooks/                    # Custom React hooks
β”‚   β”‚   └── useUserData.ts        # User data management
β”‚   └── utils/                    # Helper functions
β”‚
β”œβ”€β”€ public/                       # Static assets
β”‚   β”œβ”€β”€ manifest.json             # PWA manifest
β”‚   β”œβ”€β”€ placeholder.svg           # Placeholder images
β”‚   └── icons/                    # App icons
β”‚
β”œβ”€β”€ .env.local                    # Environment variables
β”œβ”€β”€ next.config.ts                # Next.js configuration
β”œβ”€β”€ tailwind.config.ts            # Tailwind configuration
β”œβ”€β”€ tsconfig.json                 # TypeScript configuration
β”œβ”€β”€ vercel.json                   # Vercel deployment config
β”œβ”€β”€ DEPLOYMENT.md                 # Deployment guide
└── README.md                     # This file

πŸ”Œ API Integration

Anime API (Sansekai)

// Proxy endpoint
/api/sansekai/[...path]

// Example usage
fetch('/api/sansekai/anime/popular')
  .then(res => res.json())
  .then(data => console.log(data));

Drama API (Sapimu)

// Proxy endpoint
/api/sapimu/[...path]

// Example usage
fetch('/api/sapimu/drama/trending')
  .then(res => res.json())
  .then(data => console.log(data));

Search API

// Search suggestions
fetch('/api/search/suggest?q=naruto')
  .then(res => res.json())
  .then(data => console.log(data));

🎨 Design System

Color Palette

/* Primary Colors */
--color-primary: #E50914;        /* Netflix Red */
--color-primary-hover: #ff1a1a;
--color-accent: #00D9FF;         /* Cyberpunk Blue */

/* Neutrals */
--color-background: #0a0a0a;     /* Deep Black */
--color-surface: #141414;        /* Card Background */
--color-surface-hover: #1a1a1a;

/* Text */
--color-text-primary: #ffffff;
--color-text-secondary: #b3b3b3;
--color-text-muted: #808080;

Typography

/* Font Family */
font-family: var(--font-inter), system-ui, sans-serif;

/* Font Sizes */
text-xs:    0.75rem  (12px)
text-sm:    0.875rem (14px)
text-base:  1rem     (16px)
text-lg:    1.125rem (18px)
text-xl:    1.25rem  (20px)
text-2xl:   1.5rem   (24px)
text-3xl:   1.875rem (30px)

Spacing Scale

0.5 β†’ 2px
1   β†’ 4px
2   β†’ 8px
3   β†’ 12px
4   β†’ 16px
6   β†’ 24px
8   β†’ 32px
12  β†’ 48px
16  β†’ 64px

Animations

  • Duration: 200ms - 500ms
  • Easing: cubic-bezier(0.16, 1, 0.3, 1)
  • Hover Scale: 1.05 - 1.10
  • Transitions: opacity, transform, colors

⚑ Performance

Lighthouse Scores (Target)

  • Performance: 90+ 🟒
  • Accessibility: 95+ 🟒
  • Best Practices: 95+ 🟒
  • SEO: 100 🟒

Optimization Techniques

βœ… Image Optimization

  • Blur placeholder untuk lazy loading
  • WebP format support
  • Responsive images dengan Next.js Image

βœ… Code Splitting

  • Dynamic imports untuk heavy components
  • Route-based splitting otomatis

βœ… Caching Strategy

  • Static assets: 1 year cache
  • API responses: 60s stale-while-revalidate
  • Service worker untuk offline

βœ… Bundle Optimization

  • Tree shaking
  • Minification
  • Compression (gzip/brotli)

πŸš€ Deployment

Vercel (Recommended)

  1. Push ke GitHub

    git add .
    git commit -m "Initial commit"
    git push origin master
  2. Import di Vercel

    • Buka vercel.com
    • Import GitHub repository
    • Auto-detect Next.js configuration
    • Deploy!
  3. Environment Variables

    • Set di Vercel Dashboard β†’ Settings β†’ Environment Variables
    • Tambahkan semua variabel dari .env.local

Alternative Platforms

  • Netlify: npm run build β†’ Deploy .next folder
  • Railway: Auto-deploy dengan GitHub integration
  • Docker: Lihat Dockerfile.example (coming soon)

Custom Domain

# Vercel CLI
vercel domains add rfx.based.my.id

Atau atur di Vercel Dashboard β†’ Settings β†’ Domains

Live Demo: https://rfx.based.my.id


🀝 Contributing

Kontribusi sangat diterima! Berikut cara berkontribusi:

  1. Fork repository
  2. Create feature branch
    git checkout -b feature/AmazingFeature
  3. Commit changes
    git commit -m "Add some AmazingFeature"
  4. Push to branch
    git push origin feature/AmazingFeature
  5. Open Pull Request di GitHub

Development Guidelines

  • Gunakan TypeScript untuk semua file baru
  • Follow ESLint rules
  • Write meaningful commit messages
  • Add comments untuk logic yang complex
  • Update documentation jika perlu

πŸ“ License

Distributed under the MIT License. See LICENSE for more information.


πŸ‘₯ Authors

πŸ‘¨β€πŸ’» Rifqy Saputra

Creator & Lead Developer

Portfolio GitHub Instagram

Platform Link
🌐 Portfolio rifqysaputra.my.id
πŸ“Έ Instagram @rfqy_sptr
πŸ’» GitHub @muris11
🎬 RFX Live rfx.based.my.id

πŸ™ Acknowledgments


πŸ“ž Support

Butuh bantuan? Buka issue atau hubungi:

Contact Link
🌐 Portfolio rifqysaputra.my.id
πŸ“Έ Instagram @rfqy_sptr
πŸ’» GitHub @muris11
🎬 Live Demo rfx.based.my.id

⭐ Star project ini jika kamu merasa terbantu!


Made with ❀️ by Rifqy Saputra

Portfolio Instagram GitHub

🌐 Visit Live Demo


Β© 2026 Rifqy Saputra. All rights reserved.

About

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages