A self-hosted PWA that brings together everything you read and watch. It tracks progress chapter by chapter or episode by episode, and automatically finds where to read or watch it legally.
- data sources
- 6
- legal platforms
- ~40
- media types
- 4
What I built
- Unified search across MangaDex, MyAnimeList, AniList, Kitsu, TMDB and TVmaze, with merged, de-duplicated results.
- A link-resolution engine covering about forty official platforms (Crunchyroll, ADN, Netflix, Webtoon…).
- Release calendar and push notifications (VAPID), refreshed every 6 hours by a background job.
- A year-long activity heatmap, stats and a “ready to binge” sort.
- Works offline and syncs when the network comes back.
The challenges
01
Six APIs, one result
Each source has its own format and IDs. A providers package normalises everything, then duplicates are merged so a title only shows up once.
02
A monorepo architecture
The Hono API, the React front end and shared packages (types, providers) live in one repository, so any contract change is type-checked on both sides.
Stack
- React
- Vite
- TypeScript
- Hono
- PostgreSQL 16
- Drizzle
- PWA
- Docker
- Year
- 2026
- Type
- Web app
- Source code
- GitHub