Skip to content

Contributing ​

Thank you for helping. Callx is maintained in the open, and contributions of every size matter.

Ways to help ​

ContributionImpact
Device test reportsThe highest. Run the acceptance checklist on your phones, especially Xiaomi, Oppo, Vivo, Huawei and Samsung, and share the results
A phone you no longer useOlder phones and vendor ROMs widen what can be verified; see help verify on real devices
Bug reportsWith platform, OS version, device model, versions and log lines
DocumentationEvery page has an "Edit this page" link
AdaptersA media adapter for your provider; see write a media adapter
CodeFixes and features, discussed first for anything large
SponsorshipFunds maintenance time through every iOS and Android release

Build from source ​

Requirements: Node.js 24, Flutter (version pinned in .fvmrc), Xcode 26 or later, JDK 17, Android SDK 36, Docker (for the local LiveKit server).

sh
git clone https://github.com/bear-block/callx && cd callx
npm ci
npm run test:quick     # tools, contract, typecheck, parity, Flutter, React Native
npm run test:all       # plus the Kotlin and Swift suites and the iOS Simulator

Run an example app on a device or emulator:

sh
npm run android:flutter   # or android:rn, ios:flutter, ios:rn

Repository layout ​

PathContents
native/The canonical Swift and Kotlin core. Edit here
adapters/livekit/The canonical LiveKit adapter sources
packages/callx, packages/react-nativeThe framework packages; native sources are vendored copies
packages/callx_livekit, packages/react-native-livekitThe adapter packages
packages/testkitThe device-trial tools
contracts/v0The contract manifest and fixtures
website/This site

Native sources are edited in native/ and adapters/, then copied into packages with npm run native:sync. CI fails if the copies drift (npm run native:check).

Pull requests ​

  1. For anything beyond a small fix, open an issue or discussion first.
  2. Keep changes focused; one concern per pull request.
  3. Add tests at the lowest level that proves the change: contract fixture, Swift or Kotlin unit test, then framework tests.
  4. Behaviour on devices needs a dated evidence record before it is marked verified on the status page.
  5. Write documentation and code comments in English.

Code of conduct ​

Be kind, assume good intent, and keep discussions about the work. Harassment of any kind is not tolerated; report it to the maintainers privately.

Released under the MIT License. No telemetry, in the library or on this site.