finds.dev← search

// the find

zulip/zulip-mobile

★ 1,348 · JavaScript · Apache-2.0 · updated Jul 2026

Legacy Zulip mobile apps for Android and iOS

This is Zulip's old React Native client for Android and iOS, now explicitly retired in favor of a new Flutter rewrite (zulip-flutter). It's a fairly large, mature RN codebase with years of production history, but the README says it's unsupported and slated for archival. Useful mainly as a reference for how a real-world Redux + RN chat client was structured, not as something to build on.

The API layer is cleanly split into one file per endpoint (src/api/messages, src/api/streams, etc.), which makes the server contract easy to grep even without reading docs. Flow typing is used thoroughly across the codebase rather than bolted on after the fact, and there's real test infrastructure (jest presets per platform, flow-tests, fake timers) instead of a token test folder. It also has years of production use behind it, so the patterns in here (notification handling, realtime event queue, account switching) are battle-tested, not theoretical.

It's dead: the README says it's unsupported and will be archived, with all future work going into zulip-flutter, so there's no reason to adopt this as a dependency or template going forward. It's built on Flow, which has lost almost all mindshare to TypeScript, so the typing approach here is a dead end for anyone trying to learn from it. The CI workflow and tooling (buck, custom flow-typed stubs for things like async-storage) reflect an older RN toolchain that doesn't map cleanly onto current React Native setups (Expo, new architecture, etc.). Issues and PRs are presumably not being triaged anymore given the archival plan, so don't expect fixes or responses.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →