Modern streaming platform untuk Drama, Anime, Komik, dan Shorts
π Live Demo β’ π Documentation β’ π Quick Start β’ π¬ Report Bug
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- API Integration
- Design System
- Performance
- Deployment
- Contributing
- License
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.
- π― 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
- 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
- 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
- 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
- Offline Support - Service worker untuk offline access
- Add to Home Screen - Install sebagai native app
- Push Notifications - (Coming soon)
- Background Sync - (Coming soon)
- Next.js 16.1.1 - React framework dengan App Router
- React 19 - UI library
- TypeScript 5 - Type-safe JavaScript
- Tailwind CSS 4 - Utility-first CSS framework
- Framer Motion 11 - Production-ready animations
- Lucide React - Beautiful icon library
- React Hooks - useState, useEffect, useCallback, useRef
- Local Storage - Client-side persistence
- Server Components - Next.js server-side rendering
- Sapimu API - Drama & movies data
- Sansekai API - Anime data
- Custom Proxy - API routing & caching
- Node.js 18.x atau lebih baru
- npm atau yarn atau pnpm
- Git
-
Clone repository
git clone https://github.com/muris11/rfx_nextjs.git cd rfx_nextjs -
Install dependencies
npm install # atau yarn install # atau pnpm install
-
Setup environment variables
cp .env.example .env.local
Edit
.env.localdan tambahkan konfigurasi yang diperlukan:NEXT_PUBLIC_APP_URL=https://rfx.based.my.id NEXT_PUBLIC_APP_NAME=RFX
-
Run development server
npm run dev # atau yarn dev # atau pnpm dev
-
Open browser
http://localhost:3000
npm run build
npm startrfx/
βββ 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
// Proxy endpoint
/api/sansekai/[...path]
// Example usage
fetch('/api/sansekai/anime/popular')
.then(res => res.json())
.then(data => console.log(data));// Proxy endpoint
/api/sapimu/[...path]
// Example usage
fetch('/api/sapimu/drama/trending')
.then(res => res.json())
.then(data => console.log(data));// Search suggestions
fetch('/api/search/suggest?q=naruto')
.then(res => res.json())
.then(data => console.log(data));/* 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;/* 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)0.5 β 2px
1 β 4px
2 β 8px
3 β 12px
4 β 16px
6 β 24px
8 β 32px
12 β 48px
16 β 64px
- Duration: 200ms - 500ms
- Easing: cubic-bezier(0.16, 1, 0.3, 1)
- Hover Scale: 1.05 - 1.10
- Transitions: opacity, transform, colors
- Performance: 90+ π’
- Accessibility: 95+ π’
- Best Practices: 95+ π’
- SEO: 100 π’
β 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)
-
Push ke GitHub
git add . git commit -m "Initial commit" git push origin master
-
Import di Vercel
- Buka vercel.com
- Import GitHub repository
- Auto-detect Next.js configuration
- Deploy!
-
Environment Variables
- Set di Vercel Dashboard β Settings β Environment Variables
- Tambahkan semua variabel dari
.env.local
- Netlify:
npm run buildβ Deploy.nextfolder - Railway: Auto-deploy dengan GitHub integration
- Docker: Lihat
Dockerfile.example(coming soon)
# Vercel CLI
vercel domains add rfx.based.my.idAtau atur di Vercel Dashboard β Settings β Domains
Live Demo: https://rfx.based.my.id
Kontribusi sangat diterima! Berikut cara berkontribusi:
- Fork repository
- Create feature branch
git checkout -b feature/AmazingFeature
- Commit changes
git commit -m "Add some AmazingFeature" - Push to branch
git push origin feature/AmazingFeature
- Open Pull Request di GitHub
- Gunakan TypeScript untuk semua file baru
- Follow ESLint rules
- Write meaningful commit messages
- Add comments untuk logic yang complex
- Update documentation jika perlu
Distributed under the MIT License. See LICENSE for more information.
| Platform | Link |
|---|---|
| π Portfolio | rifqysaputra.my.id |
| πΈ Instagram | @rfqy_sptr |
| π» GitHub | @muris11 |
| π¬ RFX Live | rfx.based.my.id |
- π¨βπ» Developer: Rifqy Saputra
- π¨ Design Inspiration: Netflix
- π― Icons: Lucide Icons
- β¨ Fonts: Inter
- π API: Sapimu & Sansekai
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
Β© 2026 Rifqy Saputra. All rights reserved.