Skip to main content

Overview

EpiNeko uses a status system to categorize anime in your library based on your viewing progress and intentions. This helps organize your collection and provides meaningful statistics about your viewing habits.

Watching

Currently watching and actively following

Completed

Finished watching all available episodes

Plan to Watch

Added to library but not started yet

Dropped

Started but decided not to continue

Status Type Definition

The watch status is defined as a TypeScript union type and PostgreSQL enum:
Database Enum (supabase/migrations/20260218_initial_schema.sql:45):
The enum is defined at the database level, ensuring data integrity and preventing invalid status values.

Status Details

Watching (watching)

Indicates you are currently watching this anime and actively following new episodes or continuing through the series.
LibraryStatus
Label: 📺 VIENDOWhen to use:
  • You’re actively watching episodes
  • You’re keeping up with currently airing episodes
  • You plan to watch the next episode soon
Typical behavior:
  • Appears in “Currently Watching” sections
  • Updates episode count as you progress
  • Used for tracking active viewing
Example Usage:

Completed (completed)

Marks an anime as finished - you’ve watched all available episodes.
LibraryStatus
Label: ✅ COMPLETADOWhen to use:
  • You’ve finished all episodes
  • Series has ended and you’ve seen it all
  • You’ve watched everything currently available for ongoing series
Automatic behavior:
  • Automatically set when episodes_watched equals total episodes
  • Contributes to completion rate statistics
  • Enables scoring/rating
Auto-completion Logic (src/components/anime/EpisodeList.tsx:49-50):
Example:

Plan to Watch (plan_to_watch)

Added to your library but not started watching yet.
LibraryStatus
Label: ⏳ PENDIENTEWhen to use:
  • You want to watch it later
  • You’re building a watchlist
  • You’re interested but don’t have time now
Default behavior:
  • Default status when adding from AnimeDetailsModal
  • Often used with episodes_watched: 0
  • Acts as a bookmark or wishlist
Default Status (src/components/anime/AnimeDetailsModal.tsx:54):
Example:

Dropped (dropped)

You started watching but decided not to continue.
LibraryStatus
Label: ❌ ABANDONADOWhen to use:
  • You started but lost interest
  • Not enjoying the series
  • Decided it’s not for you
Purpose:
  • Keeps record of what you’ve tried
  • Prevents re-adding by mistake
  • Provides honest viewing statistics
Example:

Status Labels

UI-friendly labels with emojis for each status:
Implementation (src/components/anime/LibraryButton.tsx:73-78):
  • Used in dropdown menus
  • Displayed on profile statistics
  • Shown in library filters

Changing Status

Via LibraryButton

The LibraryButton component provides a dropdown to change status:
1

Click Main Button

Adds anime to library with default status or removes if already in library
2

Status Dropdown Appears

Only visible when anime is in library
3

Select New Status

Click any status from the dropdown menu
4

Update Applied

Library item is updated with new status
Code Example (src/components/anime/LibraryButton.tsx:96-113):

Programmatic Updates

Update status directly via API:

Status-Based Filtering

Filter library by status for organization:
Profile Statistics (src/app/profile/page.tsx:49-55):

Automatic Status Changes

Some status changes happen automatically based on user actions:
When marking episodes as watched:
Implementation: src/components/anime/EpisodeList.tsx:44-70

Status Colors

Visual color coding for each status:
Progress Bar Colors (src/app/profile/page.tsx:151-154):
  • Watching: bg-primary (pink)
  • Completed: bg-green-500
  • Plan to Watch: bg-yellow-500
  • Dropped: bg-red-500

Status Best Practices

Be Honest

Use “dropped” instead of keeping unwatched anime as “watching”Provides accurate viewing statistics

Update Regularly

Change status as your viewing situation changesKeeps library organized and current

Use Plan to Watch

Add interesting anime to “plan to watch” as bookmarksBuild your watchlist for later

Complete Properly

Mark as completed only when fully finishedMakes completion statistics meaningful

Database Constraints

The status field has constraints at the database level:
Key Points:
  • Status is required (NOT NULL)
  • Must be one of the four enum values
  • Defaults to ‘watching’ if not specified
  • Database rejects invalid values
Attempting to set an invalid status will result in a database error. Always use the predefined LibraryStatus type values.

Status Statistics

View your status distribution on the profile page:
Visualization:
  • Progress bars showing distribution
  • Numeric counts for each status
  • Completion percentage calculation
  • Visual color coding