Pharos - Universal Media Tracker
A unified 'Letterboxd-style' platform to track and categorize movies, series, books, video games, and anime. Built with Next.js and Supabase.

5
Media Types
4+
APIs Integrated
Private/Invite
Access
# Overview
Pharos was born from a personal frustration: the fragmentation of my digital hobbies. I needed a single place to categorize everything I read, watch, and play, without jumping between Goodreads, MyAnimeList, Letterboxd, and Backloggd.
The name "Pharos" pays homage to the Lighthouse of Alexandria—symbolizing the Great Library and the centralization of all knowledge.
It is a private, invite-only platform where I (and selected friends) can track consumption, manage wishlists, and view statistics. It leverages multiple external APIs to fetch metadata covers and descriptions automatically.
Problem
Digital entertainment tracking is fragmented across niche platforms. There was no single tool capable of handling the distinct metadata needs of books, games, and cinema simultaneously while offering a unified dashboard for personal analytics.
Solution
I engineered a full-stack solution using Next.js and Supabase. The database schema abstracts specific media attributes into a unified structure, allowing seamless tracking across 5 different media types. The system features a strict invite-only authentication flow to maintain privacy and control resource usage.
# Features
- Unified Tracking: Movies, Series, Books, Video Games, and Anime in one DB
- Multi-API Integration: Fetches metadata from specialized providers (TMDB, IGDB, OpenLibrary, etc.)
- Role-Based Access: Invite-only system where Admins must approve new accounts
- Secure Auth: Google OAuth integration with email verification via Supabase
- Personal Dashboard: Stats, 'To-Do' / Wishlists, and history logs
- Global Search: Unified search bar that queries multiple external sources simultaneously
# Screenshots

Central dashboard showing stats and recent activity across all media types.

Search engine aggregating results from multiple external APIs (TMDB, IGDB, etc.).

Detail view showing metadata, status selector, and user rating.

Grid view of the user's backlog and wishlist.
Challenges
- >Data Normalization: Creating a database schema flexible enough to store attributes for a Book (pages, author) and a Game (platform, developer) in the same table structure.
- >Implementing a custom 'Invite-Only' workflow on top of standard OAuth authentication.
- >Handling rate limits and asynchronous data fetching from 5+ different external APIs.
Learnings
- >Advanced usage of Supabase Row Level Security (RLS) for user data privacy.
- >Designing polymorphic database relationships.
- >Managing complex asynchronous state when aggregating data from multiple third-party sources.
Tech Stack
Full Stack
Backend & Auth
Infrastructure
Data Sources
Links
Quick Info
Status
live
Started
January 2026