How delmoonkarn/del-anime-tracker works
Anime Tracker is a seasonal anime tracking app with a React client and two deployment modes: local SQLite or Cloudflare D1. The user workflow is to explore/search AniList, add shows to the schedule or collections, update watch progress and links, and persist the resulting lists; routing also supports direct links to pages and show details. Settings provide account and backup workflows. The README documents these capabilities; where their implementation was not sampled, the graph preserves the subsystem but omits unverified internal links.
Main entry points: App.tsx App orchestration · app.ts HTTP API routes · anilist.ts AniList client · DiscoverPage.tsx Season explore
Components 29
Tracker client
- Client bootstrap
src/main.tsx - App orchestration
src/App.tsx - Page routing
src/lib/routes.ts - Settings and backups UI
src/components/SettingsPage.tsx
Anime features
- Season schedule
src/components/ScheduleGrid.tsx - Watchlist
src/components/WatchlistPage.tsx - Season explore
src/components/DiscoverPage.tsx - H explore and favorites
src/components/HDiscoverPage.tsx - Collections
src/components/CollectionPage.tsx - Show details
src/components/AnimeDetailPage.tsx - Global search
src/components/GlobalSearch.tsx - AniList client
src/lib/anilist.ts - Streaming links
src/lib/streamLinks.ts
App server
- HTTP API routes
server/app.ts - Local server entry
server/index.ts - Cloudflare Worker
server/worker.ts
Persistence and backups
- Client list storage
src/lib/storage.ts - Database operations
server/db.ts - SQLite adapter
server/sqlite.ts - D1 adapter
server/d1.ts - SQL backup and restore
server/backup.ts
Accounts and email
- Sign-in gate
src/components/AuthGate.tsx - Account authentication
server/auth.ts - Backup email
server/email.ts
Other components
- Tracker user
- AniList
- Local SQLite database
- Cloudflare D1
- Resend email service
Connections 36
- Tracker user → Client bootstrap: uses
- Client bootstrap → Sign-in gate: mounts
src/main.tsx - Sign-in gate → App orchestration: renders
src/components/AuthGate.tsx - App orchestration → Page routing: parses routes
src/App.tsx - App orchestration → Season schedule: renders
src/App.tsx - App orchestration → Watchlist: renders
src/App.tsx - App orchestration → Season explore: routes to
src/App.tsx - App orchestration → H explore and favorites: routes to
src/App.tsx - App orchestration → Collections: routes to
src/App.tsx - App orchestration → Show details: renders
src/App.tsx - App orchestration → Settings and backups UI: renders
src/App.tsx - App orchestration → Global search: renders
src/App.tsx - Season explore → AniList client: fetches catalog
src/components/DiscoverPage.tsx - Global search → AniList client: searches
src/components/GlobalSearch.tsx - Show details → AniList client: fetches details
src/components/AnimeDetailPage.tsx - AniList client → AniList: queries
src/lib/anilist.ts - App orchestration → Client list storage: saves lists
src/App.tsx - Season schedule → Tracker user: updates progress
- Watchlist → Tracker user: updates progress
- Show details → Streaming links: resolves watch links
src/components/AnimeDetailPage.tsx - Season explore → Streaming links: filters services
src/components/DiscoverPage.tsx - App orchestration → HTTP API routes: requests storage API
- Settings and backups UI → HTTP API routes: requests backup API
- Local server entry → HTTP API routes: serves routes
server/index.ts - Local server entry → SQLite adapter: configures
server/index.ts - Cloudflare Worker → HTTP API routes: serves routes
server/worker.ts - Cloudflare Worker → D1 adapter: configures
server/worker.ts - HTTP API routes → Database operations: reads and writes
server/app.ts - HTTP API routes → SQL backup and restore: builds backups
server/app.ts - HTTP API routes → Account authentication: authenticates
server/app.ts - Account authentication → Backup email: sends reset mail
server/auth.ts - SQL backup and restore → Backup email: sends scheduled backups
server/backup.ts - Backup email → Resend email service: sends mail
- SQLite adapter → Local SQLite database: stores data
- D1 adapter → Cloudflare D1: stores data
- Client list storage → HTTP API routes: writes API data
src/lib/storage.ts