
A private anime tracker built around your list — progress, playlists, what to watch next, and a recap of the year. No ads, no social feed. On the App Store and Google Play, and still updated when something needs a fix.
Home
Your home screen is built from your list — not a social feed.
Search
Search that stays fast: shows, characters, and the people behind them.
Library
Playlists for what you are watching, saving, finished, and love.
Schedule
A weekly schedule that follows when episodes actually go out.
Anime page
Everything about a title on one page — episodes, related shows, songs, reviews.
Explore
Browse what is popular, airing, upcoming, or in season.
Relations
See how a title connects — sequels, spin-offs, and the rest of the map.
Analytics
Hours, titles, and a recap of the year from your own list.
What landed
Shipped on Google Play and the App Store
2.0 added relations, yearly Arcs, and analytics; 2.2.x is still maintained
What's in the app
Library
- Playlists for watching, watch later, finished, favorites, and lists you make.
- Tick episodes one at a time, or handle a bunch of titles in one pass.
- Import watching, completed, and plan-to-watch from MyAnimeList — one way, not a sync.
Home
- Home is built from your list: news, new episodes, continue watching, start watching, and a for-you row.
- Rows from your progress: finishing soon, revisit, more from the saga, watchlist premiering.
Discover
- Search shows, characters, and the people behind them — filters and recent searches stay close.
- Browse what is popular, airing, upcoming, in theaters, or in season.
- Character and voice-actor pages, plus a seasons browser.
A title
- Episodes, related shows, pictures, reviews, stats, and songs on one page.
- A map of sequels, spin-offs, and the rest of the franchise, with a suggested watch order.
- Openings and endings on the title — not a separate music app.
Schedule
- A week or a month of airing times, based on when episodes actually go out.
- A ping when something you track drops — in the app inbox and on the phone.
Year
- Analytics from your list: hours, titles, genres, and how the year adds up.
- An activity heatmap and a timeline of started, finished, and imported.
- Annual Arcs — a look back at the year when it closes.
The app
- Custom themes, nine built-ins, English or Japanese labels, and landscape layouts.
- Guest mode if you want to try before signing in.
- Move your library with a .tma.zip export and import.
- Layout density, section or card views, and a short tour when 2.0 landed.
How it was built
- Flutter 3.32 (Dart) client with Provider and Hive, plus Firebase Auth, Firestore, Cloud Functions, and FCM.
- Live catalog via Tenrai. MyAnimeList OAuth2 + PKCE for one-way import of watching, completed, and plan-to-watch — import, not two-way sync.
- Release alerts in 30-minute Asia/Tokyo buckets, delivered through FCM and an in-app Firestore inbox, with a 6-hour reconcile so missed drops get caught.
- Episode times predicted from AniList, Kitsu, and Syoboi, with UTC↔JST conversion, cour-break handling, and TTL caches.
- Cloud Functions batched around reads, inbox denormalization, and prediction caches.
- Relation tree, activity heatmap, and yearly Arcs on top of the library.
- Custom themes, English/Japanese, landscape layouts, guest mode, and .tma.zip data transfer.
The hard parts
Cost vs correctness
Notification scheduler runs on 30-minute Asia/Tokyo buckets with an overdue cap, plus a full reconcile so drift cannot silently miss releases.
Prediction holes
Cour breaks and empty premiere responses needed client-side regeneration so “new episode” stays trustworthy after catalog quirks.
Catalog swap
Moved the live catalog from Jikan to Tenrai while keeping MAL for import, search, and people — without breaking cached keys.
Landscape
Rebuilt core chrome with OrientationBuilder and MediaQuery so phones and tablets stay usable in landscape.

