People search for "Jitsi Meet APK" for three very different reasons. Some just want the app. Some want the app to open their own server by default. And some want an app with their company's name and icon on it. Only the last group needs to build anything, and it is more work than it looks.
We have built branded Jitsi apps since 2018. Here is the order we'd suggest trying things in, cheapest first.
Jitsi Meet APK: the official app
The official Android app is on Google Play and on F-Droid, which builds it from the public source and offers the APK as a direct download. Those are the only sources worth using. Third-party APK mirrors can't show you what they changed, and for an app with camera and microphone access that is a real risk.
The official app is not locked to meet.jit.si. Open its settings, set the server URL to https://meet.example.com, and every meeting goes to your server. For most teams that is the whole job. It can also be set centrally: the app reads a server URL restriction, so an MDM tool can push your domain to managed phones.
Jitsi Android app inside your own app: use the SDK
If what you really want is video calls inside an existing Android app, don't fork Jitsi Meet. Use the Jitsi Meet SDK for Android. You add it from Jitsi's Maven repository, set a default server, and launch a meeting with a few lines. Upgrades become a version bump instead of a merge. The same idea on the web is the Jitsi IFrame API, and for React Native projects see integrating Jitsi into React and React Native.
Build a branded Jitsi Meet APK
A full rebuild makes sense when you want a store listing of your own: your app name, icon, package ID, and a default server baked in. The app is the React Native project inside the main jitsi-meet repository.
Linux, macOS or WSL only
1. Check out a release, not master
git clone https://github.com/jitsi/jitsi-meet.git
cd jitsi-meet
git tag --list 'mobile-sdk-*' | sort -V | tail -5 # pick a recent mobile release
git checkout <tag>
npm install Building from a tag gives you a combination Jitsi actually shipped. Master moves every day, and a build that works on Monday can fail on Thursday.
Node versions deserve a note. As of this writing, the mobile development guide asks for Node 20, while the repository's package.json declares Node 24 or newer. Use whatever the tag you checked out declares, and use nvm so you can switch.
2. Change the branding
| What | Where |
|---|---|
| Default server | DEFAULT_SERVER_URL in react/features/base/settings/constants.ts |
| App name | app_name in android/app/src/main/res/values/strings.xml |
| Package ID | applicationId in android/app/build.gradle |
| Deep links | The <data android:host> entries and custom scheme in android/app/src/main/AndroidManifest.xml |
| Icon | The ic_launcher images under android/app/src/main/res/mipmap-* |
The deep links are the easy one to forget. The stock manifest claims links to meet.jit.si, so without a change your app offers to open meet.jit.si meetings, and links to your own server open in the browser instead. Replace the hosts with your domain and change the custom URL scheme too.
File paths move between releases. If something in this table is not where we say, search the tag you checked out; git grep meet.jit.si finds most of it.
3. Build and install
With the Android SDK command-line tools installed and ANDROID_HOME set, plug in a phone with USB debugging on:
adb devices # the phone should show as "device"
cd android
./gradlew installDebug That builds a debug APK and installs it. For a release you need your own signing key and a release build (./gradlew assembleRelease for an APK, or a bundle for Google Play); the React Native signing guide covers the keystore setup.
The part nobody budgets for
Building the first branded APK takes a day or two. Keeping it current takes longer. Jitsi Meet releases often, Android raises its target SDK requirement every year, and Google Play rejects updates that fall behind. Every release means merging upstream into your branding changes and testing calls again.
Keep your changes small and in their own commits, so each merge stays boring. The same rule applies to the web front end, and our guide to customizing the Jitsi Meet front end shows the web side. If you'd rather hand the whole thing off, that is part of our Jitsi customization service.
Frequently Asked Questions
Where can I download the Jitsi Meet APK?
Get the official app from Google Play or F-Droid. F-Droid builds it from the public source and lets you download the APK directly. Avoid APK mirror sites; you cannot check what was changed in those builds.
Can the Jitsi Meet Android app use my own server?
Yes, without rebuilding anything. In the app's settings, change the server URL to your domain. Rebuilding only makes sense when you want your own app name, icon, package ID and default server.
Do I need to build the whole app to add Jitsi to my Android app?
No. The Jitsi Meet SDK for Android is published as a Maven library. You add it as a dependency and open meetings from your own activity, which is much less work than maintaining a fork of the full app.
Can I build the Jitsi Meet APK on Windows?
Not officially. The Jitsi handbook says building the apps and SDKs is not supported on Windows. Use Linux, macOS, or WSL with the command-line workflow.
Which Node version does the Jitsi mobile build need?
Check the handbook and the package.json of the exact release you build. At the time of writing the mobile guide asks for Node 20 while the repository's package.json declares Node 24 or newer, so match the release tag rather than guessing.