Skip to content

Vocxss/granimee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎬 Granime

The best anime streaming platform — built with love for anime fans, by anime fans. 💜

Granime is a full-stack anime streaming web app that lets you browse, discover, and watch your favorite anime — all in one beautiful, modern interface. Whether you're catching up on the latest seasonal drops or diving into a classic series, Granime has you covered!


✨ Features

  • 🔍 Browse & Search Anime — Explore a rich catalog with cover art, ratings, synopses, and genre tags.
  • 📺 Stream Episodes — Watch anime with a smooth HLS video player, complete with quality selection and subtitle support.
  • 📅 Anime Schedule — Stay up to date with airing schedules so you never miss a new episode.
  • 🕓 Watch History — Automatically tracks what you've watched and where you left off — resume anytime!
  • 👤 User Profiles — Sign up, log in (with OAuth support), and manage your profile.
  • 🌙 Stunning Dark UI — A gorgeous dark theme with glassmorphism effects, smooth animations, and a premium feel.

🛠️ Tech Stack

Frontend

Technology Purpose
Next.js 15 (+ Turbopack) React framework with server-side rendering
React 19 UI library
TailwindCSS v4 Utility-first CSS framework
Radix UI (shadcn/ui) Accessible, unstyled UI primitives
TanStack React Query Data fetching & caching
Motion Animations & transitions
HLS.js + Video.js Adaptive video streaming
Prisma Type-safe database ORM
Supabase Auth & PostgreSQL database
Zod + React Hook Form Form validation

Backend

Technology Purpose
Hono Lightweight, ultra-fast web framework
Bun JavaScript runtime & package manager
Cheerio HTML parsing & web scraping
Upstash Redis Serverless caching layer
Zod OpenAPI API documentation & validation

📁 Project Structure

granimee/
├── frontend/          # Next.js web application
│   ├── src/
│   │   ├── app/       # App router pages & API routes
│   │   ├── components/# Reusable UI components
│   │   ├── lib/       # Utilities, hooks, and providers
│   │   └── generated/ # Prisma generated client
│   ├── prisma/        # Database schema & migrations
│   └── public/        # Static assets
│
└── backend/           # Hono API server
    └── src/
        ├── modules/   # Feature modules (scraping logic)
        ├── routes/    # API route definitions
        ├── services/  # Business logic
        ├── utils/     # Helper utilities
        └── config/    # App configuration

🚀 Getting Started

Prerequisites

Make sure you have these installed:

1. Clone the repo

git clone https://github.com/your-username/granimee.git
cd granimee

2. Set up the Backend

cd backend
bun install

Create a .env file and configure your environment variables, then start the dev server:

bun run dev

The backend API will be running at http://localhost:3030. Visit http://localhost:3030/doc for the Swagger API docs! 📖

3. Set up the Frontend

cd frontend
bun install

Copy the example env file and fill in your credentials:

cp .env.example .env

Then configure your .env:

BACKEND_IP=http://localhost:3030

DATABASE_URL=your_supabase_pooled_connection_string
DIRECT_URL=your_supabase_direct_connection_string

NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key

Generate the Prisma client and run migrations:

bunx prisma generate
bunx prisma migrate dev

Start the development server:

bun run dev

The app will be live at http://localhost:3000 🎉


📡 API Documentation

The backend comes with built-in Swagger/OpenAPI documentation. Once the backend is running, visit:

http://localhost:3030/doc

🧰 Useful Commands

Command Description
bun run dev Start dev server (frontend or backend)
bun run build Build the frontend for production
bun run start Start production server
bun run lint Run ESLint
bunx prisma studio Open Prisma Studio to browse your database
bunx prisma migrate dev Run database migrations

🤝 Contributing

Contributions are welcome! Feel free to open issues or submit pull requests. Let's make Granime even better together! 💪

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/awesome-feature
  3. Commit your changes: git commit -m 'Add awesome feature'
  4. Push to the branch: git push origin feature/awesome-feature
  5. Open a Pull Request

📄 License

This project is private and not currently licensed for public distribution.


Made with 💜 and lots of anime binge-watching

About

Platform untuk menonton anime yang dibuat dengan: NextJS + Typescript + Supabase Auth & Storage+ Shadcn + Prisma ORM

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors