How seigh-sword/anisow works
AniSpots is a cross-platform anime discovery, streaming, and offline-library client. Users browse or search titles, open details and episode lists, then watch through an embedded player; they can also save episodes for offline playback and manage watchlists and progress. The web and mobile apps share the core API client and parsers, while maintaining platform-specific navigation, storage, and downloads. The README documents the upstream API and player chain; several app screens and integrations were not sampled, so uncertain internal links are omitted.
Main entry points: Watch.tsx Watch player · WatchScreen.tsx Mobile watch player · App.tsx Web routes · downloads.ts Web download queue
Components 26
Web app
- Web routes
apps/web/src/App.tsx - Discovery screens
apps/web/src/pages - Anime details
apps/web/src/pages/Detail.tsx - Watch player
apps/web/src/pages/Watch.tsx - Episode and download sheets
apps/web/src/components - Catalog data
apps/web/src/lib/data.ts - Web API adapter
apps/web/src/lib/api.ts - API proxy
apps/web/server/proxy.mjs - Web library metadata
apps/web/src/lib/library.ts - Web download queue
apps/web/src/lib/downloads.ts - Web player bridge
apps/web/src/lib/playerBridge.ts
Mobile app
- Mobile navigation
apps/mobile/src/navigation/Root.tsx - Mobile screens
apps/mobile/src/screens - Mobile search
apps/mobile/src/screens/SearchScreen.tsx - Mobile catalog data
apps/mobile/src/lib/data.ts - Mobile watch player
apps/mobile/src/screens/WatchScreen.tsx - Mobile downloads
apps/mobile/src/lib/downloads.ts - Mobile library storage
apps/mobile/src/lib/storage.ts
Shared core
- AniWatch client
packages/core/src/api/client.ts - HTML and fragment parsers
packages/core/src/parse - Domain models
packages/core/src/model.ts
Upstream and storage
- AniWatch service
- Embedded player hosts
- IndexedDB files
- Device file system
Other components
- Viewer
Connections 31
- Viewer → Web routes: uses
apps/web/src/App.tsx - Web routes → Discovery screens: routes to
apps/web/src/App.tsx - Web routes → Anime details: routes to
apps/web/src/App.tsx - Web routes → Watch player: routes to
apps/web/src/App.tsx - Discovery screens → Catalog data: loads catalog
apps/web/src/pages/Search.tsx - Catalog data → Web API adapter: calls
apps/web/src/lib/data.ts - Web API adapter → API proxy: requests API
- API proxy → AniWatch service: proxies requests
- Anime details → Episode and download sheets: opens sheets
- Watch player → Catalog data: loads episodes
apps/web/src/pages/Watch.tsx - Watch player → Episode and download sheets: opens sheets
apps/web/src/pages/Watch.tsx - Watch player → Web player bridge: drives player
apps/web/src/pages/Watch.tsx - Watch player → Web library metadata: reads progress
apps/web/src/pages/Watch.tsx - Watch player → Embedded player hosts: embeds player
- Episode and download sheets → Web download queue: starts downloads
apps/web/src/components/DownloadSheet.tsx - Web download queue → Web library metadata: updates metadata
apps/web/src/lib/downloads.ts - Web download queue → IndexedDB files: stores files
apps/web/src/lib/downloads.ts - Viewer → Mobile navigation: uses
apps/mobile/src/navigation/Root.tsx - Mobile navigation → Mobile screens: routes to
apps/mobile/src/navigation/Root.tsx - Mobile screens → Mobile search: includes search
apps/mobile/src/navigation/Root.tsx - Mobile search → Mobile catalog data: searches
apps/mobile/src/screens/SearchScreen.tsx - Mobile catalog data → AniWatch client: uses client
apps/mobile/src/lib/data.ts - Mobile watch player → Mobile catalog data: loads catalog
apps/mobile/src/screens/WatchScreen.tsx - Mobile watch player → Mobile library storage: stores progress
apps/mobile/src/screens/WatchScreen.tsx - Mobile watch player → Mobile downloads: starts downloads
apps/mobile/src/screens/WatchScreen.tsx - Mobile downloads → Mobile library storage: updates entries
- Mobile downloads → Device file system: writes files
- Mobile watch player → Embedded player hosts: embeds player
- AniWatch client → AniWatch service: calls routes
- AniWatch client → HTML and fragment parsers: parses responses
packages/core/src/api/client.ts - HTML and fragment parsers → Domain models: creates models
packages/core/src/parse/fragments.ts