A high-performance, cinematic anime indexing and streaming platform built with modern web technologies.
🔗 Live Demo: https://frynime.netlify.app
Frynime is a frontend architecture exploration project aimed at building a fast, scalable, and responsive media indexing application. It features a dark, cinematic UI inspired by premium streaming platforms, optimized specifically for both desktop and mobile web experiences.
Data is fetched asynchronously using the Jikan REST API (Unofficial MyAnimeList API).
- Cinematic UI/UX: Dark mode default with sleek, cyberpunk-inspired cyan accents.
- Mobile-First Navigation: Features a custom iOS-style floating pill navigation bar for mobile devices.
- Optimized Performance: Utilizes Next.js native
<Image>component for lazy loading and auto-compression, achieving high Lighthouse scores. - Resilient Data Fetching: Implements caching (
revalidate) and basic retry logic to handle third-party API rate limits. - Core Pages: Trending, Top Airing, Genres, Dynamic Search, and a Favorites system (Local Storage).
Since this project relies on a free, public API (Jikan), there are a few intentional technical constraints:
- Intentional Rate Limiting (Throttling): Jikan API strictly limits requests to 3 per second. The application's loading state is intentionally prolonged/throttled in certain areas to prevent server overload and IP blacklisting (Error 504/429).
- Empty Results: If the search or genre pages return empty results, the API rate limit has likely been exceeded by the current ISP.
- Video Player Issues: The streaming feature is experimental. Several episodes may not play or will return a "moved page" error due to changes in the upstream source data.
To run this project locally, follow these steps:
-
Clone the repository:
git clone [https://github.com/nblauliadka/frynime.git](https://github.com/nblauliadka/frynime.git)
-
Navigate to the project directory:
cd frynime -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open the app: Open http://localhost:3000 in your browser.
Distributed under the MIT License. Feel free to fork and explore!