Caution
Self-hosting this application is strictly limited to personal use only. Commercial utilization is prohibited, and the inclusion of advertisements on your self-hosted website may lead to serious consequences, including potential site takedown measures. Ensure compliance to avoid any legal or operational issues.
Advanced Filtering & Discovery System
AniXo is a high-performance, premium anime streaming platform built for speed, aesthetics, and reliability. It bridges the gap between multiple metadata providers (AniList, MAL, Kitsu) and high-quality streaming sources to deliver a seamless, ad-free watching experience.
Unlike traditional platforms, AniXo features a Hybrid Resilience Engineβensuring the platform remains functional even during major third-party API outages.
The system is split into three core layers designed for maximum scalability and zero downtime.
anixo/
βββ api/ # π Unified Backend (Python & Node.js)
β βββ index.py # π Python API (Jikan/AniList Proxy)
β βββ user.js # π’ Node.js Auth & Watchlist Gateway
β βββ comments.json # π¬ Local Database (Comments)
β βββ stream_cache.json # β‘ Scraper Performance Cache
βββ src/ # βοΈ Frontend (React 19 + Vite)
β βββ pages/ # πΌοΈ Application Views (Pages)
β β βββ AnimeDetails.jsx # Anime Info & Metadata
β β βββ Browse.jsx # Advanced Filtering & Discovery
β β βββ Watch.jsx # Core Streaming Experience
β β βββ Home.jsx # Dynamic Hero & Trending Rails
β β βββ Profile.jsx # User Dashboard
β β βββ Watchlist.jsx # Personal List Management
β β βββ Schedule.jsx # Airing Timetable
β β βββ Character.jsx # Character Specific Info
β β βββ Staff.jsx # Production Staff Info
β β βββ Notifications.jsx # User Alerts & Updates
β β βββ ContinueWatching.jsx# Progress Tracking View
β β βββ ImportExport.jsx # AniList/MAL Data Portability
β β βββ Settings.jsx # App Preferences
β β βββ Portal.jsx # User Entry Point (Login/Signup)
β β βββ ForgotPassword.jsx # Account Recovery Initiation
β β βββ ResetPassword.jsx # Secure Password Update
β β βββ DMCA.jsx # Legal Information
β β βββ TermsOfService.jsx # Terms & Conditions
β βββ components/ # π§± UI Building Blocks
β β βββ layout/ # Navbar, Footer, Sidebar
β β βββ common/ # AnimeCard, VideoPlayer, Pagination
β β βββ auth/ # Login & Registration Components
β β βββ home/ # Featured Content & Carousels
β β βββ user/ # Profile & List Components
β βββ services/ # π‘ API Connectors (api.js, auth.js)
β βββ hooks/ # πͺ Custom Logic & State Hooks
β βββ context/ # π Global Auth & UI State
βββ public/ # π Static Assets (Icons, Logos)
βββ vercel.json # π Serverless Deployment Logic
βββ vite.config.js # β‘ Fast Build & Proxy Setup
βββ requirements.txt # π Python Dependencies
βββ .env.example # π Setup Template
- Intelligent Fallback: Automatically switches to Jikan (MAL) if AniList goes down.
- Dynamic Normalization: Jikan data is transformed on-the-fly to match the AniList schema, preventing UI breaks.
- Broadcast Timing: Live-synced broadcast schedules displayed directly in the Watch page.
- Multi-Server Resolution: Seamlessly switches between high-quality streaming providers.
- Smart Metadata: Episode thumbnails and descriptions are intelligently pulled from Kitsu/MAL for a "Netflix-style" browse experience.
- Native HLS Player: High-performance playback with Auto-Skip (Intro/Outro) support.
- Token-Based Recovery: Secure "Forgot Password" flow with high-entropy, hashed reset tokens.
- Gmail SMTP Integration: Professional, dark-themed HTML email templates for account recovery.
- Real-time Verification: Mandatory current password check and real-time strength indicators.
- Cloudflare Turnstile: Bot protection integrated into the login/registration process.
| Order | Action | Endpoint | Purpose |
|---|---|---|---|
| 0 | Proxy | POST /api/anilist/proxy |
GraphQL Proxy with Jikan Fallback. |
| 1 | Jikan | GET /api/jikan/proxy?path=... |
Direct REST proxy for Jikan v4 API. |
| 2 | Mapping | GET /api/malsync/<mal_id> |
MAL to AniList/Streaming mapping. |
| Action | Endpoint | Purpose |
|---|---|---|
| Get | GET /api/comments?animeId=... |
Retrieve episode discussion threads. |
| Post | POST /api/comments |
Post a new community comment. |
| Vote | POST /api/comments/vote |
Upvote or Downvote a comment. |
| Action | Endpoint | Purpose |
|---|---|---|
| Register | POST /api/auth/register |
Secure user registration. |
| Login | POST /api/auth/login |
JWT-based user authentication. |
| List | GET /api/user/watchlist |
Manage personal anime collections. |
Our data model is designed for high-concurrency and fast lookups:
- Users: Stores hashed passwords, profile settings, and account metadata.
- Watchlist: Tracks anime status (
Watching,Planned,Dropped) and current progress. - Comments: A nested system for episode-specific discussions and community engagement.
Ensure you have the following installed:
- Node.js 20+
- Python 3.10+
- MongoDB Atlas Account
Copy the template and fill in your secrets:
cp .env.example .envKey variables to set:
MONGO_URI: Your MongoDB connection string.JWT_SECRET: A long random string for auth security.EMAIL_USER: Your Gmail address (e.g.,user@gmail.com).EMAIL_PASS: Your 16-digit Gmail App Password.FRONTEND_URL: Your frontend domain (e.g.,http://localhost:5173orhttps://anixo.online).
# Run this in the project root to install frontend dependencies
npm install
npm run dev# Install Python dependencies and start the scraper
pip install -r requirements.txt
python api/index.py# IMPORTANT: You MUST also install dependencies in the api folder
cd api
npm install
npm run dev # Starts the auth gateway on port 5001To ensure a premium and safe experience, AniXo implements:
- Rate Limiting: Prevents API abuse and brute-force attacks via
express-rate-limit. - Security Headers: Uses
helmetto protect against common web vulnerabilities. - JWT Authentication: Secure stateless session management for user data.
- HLS Optimization: Adaptive bitrate streaming for smooth playback on any network.
- Scraper Caching: Reduces external API calls by caching stream results in
stream_cache.json.
| Command | Description |
|---|---|
npm run dev |
Starts the Vite development server for the frontend. |
npm run build |
Compiles the frontend for production deployment. |
npm run lint |
Runs ESLint to check for code quality and style issues. |
npm run preview |
Previews the production build locally. |
- Sync with MAL/AniList: Bi-directional sync for watchlist data.
- PWA Support: Install AniXo as a native app on mobile and desktop.
- Advanced Player Skins: Customizable themes for the streaming player.
- Community Forums: Dedicated space for anime discussions.
- Recommendation AI: Personalized suggestions based on watch history.
- Social Features: Friend lists and activity feeds.
- Environment Security: Never commit your
.envfile to a public repository. Use the included.env.exampleas a template for other contributors. - Scraper Health: If you notice slow loading times, check the
stream_cache.jsonfile. It helps reduce redundant API calls but can be cleared if data becomes stale. - Rate Limit Management: When using the Jikan fallback, avoid making more than 3 requests per second to stay within their free-tier limits.
- HLS Stability: For the best streaming performance, ensure your server supports
CORSand usehls.jscompatible browsers (Chrome, Edge, Safari). - Vercel Deployment: If deploying to Vercel, make sure to configure the
vercel.jsonproperly to handle both Python and Node.js runtimes.
| Issue | Solution |
|---|---|
| "Anime Not Found" | Check if your Python proxy is running on port 5000. |
| Login Fails | Ensure your MONGO_URI is correct and IP access is enabled in Atlas. |
| Video Not Playing | Try switching servers (S1/S2) or check your internet connection. |
| Rate Limits | If Jikan fallback triggers too often, you may hit Jikan's 429 limit. |
AniXo is a metadata aggregator and does not host any video files on its servers. All content is pulled from publicly available third-party providers. For removal requests, please refer to the DMCA page. This project is for educational purposes only.
This project is licensed under the MIT License. See the LICENSE file for more details.
We welcome contributions! Please fork the repo, create a feature branch, and submit a PR. For major changes, please open an issue first.
Developed with β€οΈ for the Anime Community.
For educational purposes only. Built by the AniXo Team.
