A self-hosted PWA that brings together everything you read and watch. It tracks your progress chapter by chapter, episode by episode, and automatically points you to the legal platforms that offer them.
- 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