# czy0729/Bangumi: a third-party bgm.tv client for iOS and Android, built in React Native

> An unofficial mobile client for the anime tracking site bgm.tv, written in TypeScript with React Native and Expo. It covers progress tracking, timelines, forums and rankings, and adds features the web version does not have.

**czy0729/Bangumi** — :electron: An unofficial https://bgm.tv ui first app client for Android and iOS, built with React Native. 一个无广告、以爱好为驱动、不以盈利为目的、专门做 ACG 的类似豆瓣的追番记录，bgm.tv 第三方客户端。为移动端重新设计，内置大量加强的网页端难以实现的功能，且提供了相当的自定义选项。 目前已适配 iOS / Android。

- Repository: https://github.com/czy0729/Bangumi
- Stars: 5,999 · Forks: 167
- Language: TypeScript
- License: MIT
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/czy0729-bangumi

## Who czy0729/Bangumi is for, and the problem it removes

bgm.tv is a site for tracking what you watch and for discussing it, and the project's README describes it as covering animation plus music, Japanese drama, games and visual novels. The site has a web interface, and this repository is an unofficial client for it on iOS and Android. The stated audience is people who already keep their records there and want to do it from a phone without going through a browser.

The README is explicit about motivation: the author writes that he has no native development background and built the app while learning React Native. That is worth knowing before you judge the codebase, because it explains both the breadth of the app and the way it is organized. The README also states the project is ad-free, hobby-driven and not profit-oriented, and the repository is MIT licensed.

What it actually removes is the web page. The README says the app has at least 100 screens, redesigned for mobile, and that it covers almost every page on the site. It also claims several features that the web version struggles to implement, plus a large set of customization options. For a heavy bgm.tv user, the practical gain is a native-feeling way to update episode progress, read the timeline and browse group posts.

## How the client is put together: Expo, MobX and a self-funded CDN layer

The repository is a TypeScript React Native project. The package.json name is bangumi-pro and the dev script is expo start, so the development workflow runs through Expo rather than a bare React Native CLI. The topics list confirms expo, mobx, react and react-native, and the dependency block includes @react-native-async-storage/async-storage, @react-native-community/blur, @react-native-community/cameraroll and @react-native-community/slider. MobX is the state layer; AsyncStorage holds local data such as settings.

The README describes one architectural decision that matters more than the rest: cover images and most desensitized static data are cached on a self-funded CDN middle layer, so that data renders faster and more reliably. The claim is that even when the web version is slow or down, the client can still fetch data. That is a real design choice with a real cost. It means the app is not purely a thin wrapper around bgm.tv endpoints, and it means there is an intermediary that someone has to pay for and keep running.

The README also mentions limited synchronization from other sites such as bilibili and Douban into bgm.tv, a local folder library manager with romanized folder scraping, and a character trading mini-game called 小圣杯 with its own UI. The repository layout backs up the scale: there are android, ios, web, workers, packages, patches and scripts directories, plus a .storybook folder and an alt_store.json file for AltStore sideloading.

## Installing the app and doing something useful in the first five minutes

There is no npm install path for end users here. The README's download section points to the GitHub releases page for the Android APK, to AltStore for sideloading on iOS, to a document listing the methods currently usable on iOS, and to an Expo project page. Google Play is not an option: the README states the listing was taken down after a report and that the matter is on hold.

If you are on Android, take the APK from the releases page and install it. The most recent release listed is 8.40.2, published on 2026-09-17. After launching, sign in with your bgm.tv account so progress and collections sync to the site.

If you want to build it yourself, the repository is an Expo project. The scripts in package.json are the entry point:

```bash
yarn install
yarn dev
```

The postinstall script runs patch-package, so patched dependencies are applied automatically after install. yarn dev starts the Expo dev server with a worker limit of four. yarn dev:offline does the same without network access. If port 8081 is already taken, the repository includes a kp script that kills whatever holds it.

For a production-style iOS build the repository defines build:ipa, which calls xcodebuild against Bangumi.xcworkspace in Release configuration with code signing disabled, and make:ipa, which runs node web/ipa.js. Neither is a signed distribution path, which lines up with the README's statement that the paid developer account has expired.

## Where czy0729/Bangumi falls short

The distribution story is the clearest limitation. The README says the paid iOS developer account has expired, that the app did not pass review during that period, and that resubmission is not being considered because of community, copyright and filing issues. So on iOS you are left with sideloading through AltStore or the other methods in the linked document, which expire and need refreshing. On Android the APK comes from GitHub releases, which means manual updates and no store-mediated trust signal.

The CDN middle layer is the second thing to weigh. It is self-funded. The README presents it as a reliability improvement, and that is plausible, but a self-funded intermediary is a single point of failure that no user controls. If it stops, the app depends on bgm.tv directly, and the README does not document what degrades in that case.

The README also notes that linked pages support web preview only, meaning you can look but not interact. And the author's own framing, that this was built while learning React Native, is a fair signal for anyone planning to fork it: the README does not document a contribution process or a testing strategy beyond the jest scripts in package.json. If you want a client with a corporate maintenance commitment, this is the wrong project. It is one person's app, and the README says so.

## How it differs from the bgm.tv website and from generic anime trackers

The obvious alternative is the bgm.tv website itself, and for some people it is the right answer. The site is the source of truth, needs no install, and cannot break because a third party stopped paying for a CDN. The difference in approach is that the site is a web application designed for a browser, while this project is a mobile app designed around touch, with the README claiming layout work specifically for small screens. If you mostly track from a desktop and only occasionally from a phone, the site wins on simplicity.

The other comparison is with trackers built around other databases. Those are separate communities with separate catalogs, and this client does not merge them: the README describes only limited synchronization from bilibili and Douban into bgm.tv. So switching to this app does not move your data anywhere new. It reads and writes the same bgm.tv account you already have.

What this client adds over the site is the extended feature set: multi-rule blocking for 超展开, user blocking, a photo wall, word clouds for subjects, people and topics, a rating monthly, category rankings, and an AI recommendation page. The README links Storybook previews for many of these screens, which is an unusual and useful way to inspect the UI before installing anything.

## Licence, releases and what maintenance costs you

The repository is MIT licensed, so you can fork it, modify it and redistribute it, including commercially, provided you keep the licence and copyright notice. That is the standard MIT bargain and I am not going to dress it up as more than it is. Two things sit alongside the licence and are worth separating from it. First, the app is unofficial and talks to bgm.tv; the licence covers this repository's code, not the service. Second, the app bundles third-party dependencies with their own licences, and the patches/ directory plus patch-package means some of them are patched locally, which you inherit if you fork.

On maintenance, the facts are straightforward. The repository is not archived, and the last push was on 2026-09-22. Releases are frequent: 8.40.2 on 2026-09-17, 8.40.0 on 2026-09-14, 8.39.4 on 2026-09-05. The CHANGELOG lives at web/CHANGELOG.MD and the README links a per-version illustrated explanation on Yuque.

Upgrading as a user means installing a new APK or refreshing a sideload, since there is no store channel. Upgrading as a fork owner means rebasing on top of a fast-moving Expo and React Native dependency tree, with pinned resolutions for define-properties and use-latest-callback and a set of local patches that can conflict. Budget for that, not for a quiet codebase.

## Conclusion

Adopt it if you already keep your watch history on bgm.tv and want a mobile app that is faster than the site and adds features the site lacks, such as multi-rule forum blocking and a photo wall. Do not adopt it if you are not a bgm.tv user, if you need Google Play distribution, or if you expect an official iOS build: the README states the paid developer account has expired and that the app will not be resubmitted. Before installing, check the release page for the current APK, and if the CDN middle layer ever goes down, confirm that subject and timeline pages still load from bgm.tv directly.

## FAQ

### Is czy0729/Bangumi an official bgm.tv app?

No. The README describes it as an unofficial third-party client for bgm.tv, built with React Native. Distribution runs through GitHub releases for Android and AltStore or other sideloading methods for iOS.

### How do I install czy0729/Bangumi on Android?

Download the APK from the GitHub releases page linked in the README's download section, then install it. Google Play is not available because the README states the listing was taken down after a report and the matter is on hold.

### Why is czy0729/Bangumi not on the App Store?

The README states the paid iOS developer account has expired, the app did not pass review during that period, and resubmission is not being considered because of community, copyright and filing issues. The README links a document listing the iOS methods currently usable instead.

### What can czy0729/Bangumi do that the bgm.tv website cannot?

The README lists extended features including multi-rule blocking for 超展开, user blocking, photo walls, word clouds for subjects, people and topics, rating monthlies, category rankings and an AI recommendation page. It also states that cover images and most static data are served through a self-funded CDN middle layer.

### Does czy0729/Bangumi work offline?

The README does not describe an offline mode for the app itself. The package.json does define a dev:offline script, but that only starts the Expo development server without network access, which is a developer workflow rather than an end-user feature.

## Sources

- [czy0729/Bangumi on GitHub](https://github.com/czy0729/Bangumi)
- [Issues](https://github.com/czy0729/Bangumi/issues)
- [License: MIT](https://github.com/czy0729/Bangumi/blob/master/LICENSE)
- [README](https://github.com/czy0729/Bangumi/blob/master/README.md)
- [Releases](https://github.com/czy0729/Bangumi/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/czy0729-bangumi
