Anime tracker · multi-source aggregator · 聖地巡礼 (pilgrimage) companion
Aggregates · AniList · Bangumi · MyAnimeList · Kitsu · Annict · Simkl · Shikimori · Anitabi
Aniseekr is a local-first anime tracker for iOS and Android with a built-in pilgrimage (聖地巡礼) camera that lets you frame real-world locations against the original anime scene.
- Multi-source aggregation. Pulls metadata from AniList, Bangumi, MyAnimeList (via Jikan), Kitsu, Annict, Simkl and Shikimori. Switch sources without losing your library.
- Local-first storage. Your library, ratings, and visit log live on-device (MMKV + SQLite). Optional encrypted cloud backup to iCloud / Google Drive via
@noble/ciphers. - Pilgrimage map. Cross-indexed Anitabi + Anime Tourism 88 scene coordinates, with a Vision-Camera compare flow that overlays the original frame on your live viewfinder.
- Themeable. 8 built-in palettes, custom accent picker, contrast & tint controls, light/dark/auto modes.
- Privacy-respecting. No third-party tracking SDKs on the data path. Crash/diagnostics via opt-in Microsoft Clarity. See Privacy.
| Layer | Stack |
|---|---|
| App | Expo SDK 54 · React Native 0.81 · Expo Router 6 · TypeScript 5.9 |
| State | MMKV (sync), SQLite, React Query |
| UI | Themed primitives (components/themed/) · Reanimated 4 · Skia · Bottom Sheet · FlashList |
| Camera | react-native-vision-camera 5 · Nitro Modules · Worklets |
| Maps | Leaflet (web), react-native-maps (native) |
| Crypto | @noble/ciphers, @noble/hashes (XChaCha20-Poly1305 backup) |
| Monetisation | RevenueCat (in-app purchase), AdMob (free tier) |
Requires Bun, Xcode 16+ (iOS), Android Studio (Android), and the Expo CLI.
git clone https://github.com/Aniseekr/aniseekr-expo.git
cd aniseekr-expo
bun install
# iOS simulator
bun run ios
# Android emulator
bun run android
# Type check + tests
bun run typecheck
bun testSee CLAUDE.md for the in-repo architecture guide (theme system, navigation budgets, state-ownership rules — written for AI assistants but readable by humans).
app/ Expo Router screens (file-based routing)
components/themed/ Theme-aware primitives — default for new UI
components/<feature>/ Feature-scoped components (bangumi, pilgrimage, rate, …)
context/ThemeContext.tsx Single source of truth for theme palette
libs/services/ Data layer (sources, cache, prefs, sync)
libs/services/pilgrimage Pilgrimage / camera / Anitabi pipeline
modules/ Native bridges (haptics, vibration, CloudKit)
__tests__/unit/ Bun unit tests
Aniseekr is a client for several public anime catalogues. The catalogue content belongs to its providers and is governed by their terms — not by this repository's Apache-2.0 licence.
| Source | What we use | Terms |
|---|---|---|
| AniList | Titles, posters, tags, scoring | AniList ToS |
| Bangumi (bgm.tv) | Titles, characters, CN tags | bgm.tv ToS |
| MyAnimeList via Jikan | Titles, rankings | Jikan ToS · MAL ToS |
| Kitsu | Titles, posters | Kitsu ToS |
| Annict | JP airing schedule, titles | Annict ToS |
| Simkl | Cross-platform sync | Simkl ToS |
| Shikimori | RU/JP titles | Shikimori ToS |
| Anitabi | Pilgrimage scene coordinates & screenshots | CC BY-NC-SA 4.0 — non-commercial; we display attribution in-app on every Anitabi-rendered surface. |
| Anime Tourism 88 | JP pilgrimage spot index | Public dataset |
If you fork Aniseekr and run it under a different brand, you are responsible for honouring each upstream provider's terms — including registering your own API keys where required and complying with Anitabi's non-commercial clause.
- No tracking, no ad-ID linkage. Apple Privacy Manifest (
app.json→NSPrivacyTracking: false) and the corresponding Play Data Safety declaration ship as part of every release. - On-device data. Library, ratings, and visit log are stored locally (MMKV + SQLite). Backups are end-to-end encrypted with XChaCha20-Poly1305 before being uploaded to your own iCloud Drive or Google Drive container.
- Diagnostics. Crash and anonymous interaction telemetry is collected via Microsoft Clarity and Google AdMob (free tier only — premium users opt out via RevenueCat). Both are gated behind feature flags and can be disabled at build time.
- Permissions (
app.json): location is used only for the nearby-spots query; photos / media library is used only when you save a comparison shot; motion sensor is used only by the compass overlay in the compare flow.
Full privacy policy: aniseekr.moe/privacy
The Aniseekr name and logo are trademarks of the Aniseekr project. The Apache-2.0 licence covers the source code but not the brand — see Section 6 of the LICENSE. If you fork Aniseekr for redistribution, please rename your build.
PRs, bug reports, and translations are welcome. See CONTRIBUTING.md for the workflow, code style, and the architectural rules every change has to satisfy (themed primitives only, no hardcoded hex, no fake placeholder data, etc.).
Aniseekr is localized in English, 繁體中文, 简体中文, 日本語, 한국어 and partial translations are welcome for any other language. Translation files live in libs/i18n/locales/ as plain JSON — see the i18n guide for the 3-minute contribution flow.
Found a security issue? Please do not open a public GitHub issue. Email gm@aniseekr.moe with details and we will respond within 72 hours.
Copyright 2026 Aniseekr.
Licensed under the Apache License, Version 2.0. See NOTICE for third-party attribution.