Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
Find a file
Hristo Terezov 2d8909911e fix(pip): Fix PiP not working when enabled via overwriteConfig
Addresses multiple issues when enabling/disabling PiP dynamically:

1. External API: Replace dead config-overwrite event handler with
   interception in executeCommand. This properly manages the intersection
   observer and PiP state when pip config changes via overwriteConfig.

2. PiPVideoElement: Fix ref access pattern - access videoRef.current
   inside useEffects instead of capturing at render time. The captured
   value was null on first render, causing blur/focus listeners to never
   be set up when component mounted into a stable conference.

3. useCanvasAvatar: Return streamRef object instead of refs.current.stream
   so consumers can access .current inside their effects. The stream is
   created in an effect and wasn't available at render time.

4. Add on-mount focus check with loadedmetadata wait to handle PiP enable
   while app is in background, ensuring video source is ready before
   attempting to enter PiP mode.
2025-12-05 06:47:03 -06:00
.devcontainer
.github chore(ci) clean Android build to save space 2025-11-27 12:45:54 +01:00
android chore(android/sdk): invoke permissionListener immediatly 2025-10-30 10:52:13 +02:00
css ref(Theme): Changes typography values to rem (#16021) 2025-08-06 19:07:27 -05:00
debian fix(deb): Adds Include on upgrade prosody. (#16687) 2025-11-20 16:13:29 -06:00
doc feat(polls): Move polls to using a component (#16406) 2025-09-25 16:46:06 -05:00
fonts
images fix(readme): Fixes badge icon and f-droid link. 2025-01-09 12:38:11 -06:00
ios chore(deps) update react-native-webrtc 2025-10-09 22:54:47 +02:00
lang lang: Remove BETA label from noise suppression button (#16730) 2025-12-03 08:19:33 -06:00
metadata
modules fix(pip): Fix PiP not working when enabled via overwriteConfig 2025-12-05 06:47:03 -06:00
patches feat: disable Giphy analytics to prevent beforeunload handlers (#16314) 2025-08-07 16:34:07 +02:00
react fix(pip): Fix PiP not working when enabled via overwriteConfig 2025-12-05 06:47:03 -06:00
react-native-sdk Update jitsi-meet-rnsdk.podspec 2025-10-08 11:15:59 +03:00
resources fix(visitors): Fix s2sout host-unknown errors by skipping domain mapping 2025-12-04 14:26:56 -06:00
sounds
static feat(base): add WebRTC availability detection (#16608) 2025-11-03 14:25:10 -06:00
tests test: Skip iframe tests when the API is disabled. 2025-11-18 17:00:21 -06:00
twa chore(typos) fix various typos 2024-12-20 07:58:31 +01:00
.editorconfig chore(editorconfig) extend to include Android and iOS indentation rules 2025-10-28 09:37:53 +01:00
.eslintignore feat(lint) update to eslint-config-jitsi v6 2025-03-20 17:17:41 +01:00
.eslintrc.js feat(lint) update to eslint-config-jitsi v6 2025-03-20 17:17:41 +01:00
.gitattributes
.gitignore fix(build) add .bundle to ignore files 2025-02-17 17:24:54 +01:00
.luacheckrc
.npmrc
.nvmrc
.watchmanconfig
_unlock feat: Switches by default to using websockets. 2025-03-31 11:48:15 -05:00
app.js feat(lint) update to eslint-config-jitsi v6 2025-03-20 17:17:41 +01:00
babel.config.js dep(react-native-worklets-core): Replace duktape to align with Android 16kb page size alignment (#16393) 2025-09-09 12:46:11 +03:00
base.html
body.html
CLAUDE.md feat(CLAUDE.md): Add 2025-09-25 08:23:51 -05:00
conference.js feat(tests): Uses memory logs on failure and stops logging during conference. 2025-10-22 15:58:12 -05:00
config.js feat(toolbar): implement toolbar background color via configOverwrite for web and mobile 2025-11-11 07:02:28 -06:00
CONTRIBUTING.md fix(docs) update contributing 2025-03-23 10:15:03 +01:00
custom.d.ts feat(pip): Add Picture-in-Picture support for Electron 2025-12-04 16:04:10 -06:00
fonts.html
Gemfile fix(ios,build) add missing dependencies for fastlane 2025-02-17 17:24:54 +01:00
Gemfile.lock fix(ios,build) add missing dependencies for fastlane 2025-02-17 17:24:54 +01:00
giphy-analytics-stub.js feat: disable Giphy analytics to prevent beforeunload handlers (#16314) 2025-08-07 16:34:07 +02:00
globals.d.ts ref(SS): remove legacy SS for electron. 2025-01-21 21:22:52 -06:00
globals.native.d.ts
head.html
index.android.js
index.html feat(inIframe/isEmbedded) add ability to detect generic embedding 2025-03-26 23:39:16 +01:00
index.ios.js
inlang.config.js
interface_config.js feat(android,ios) drop support for Firebase Dynamic Links 2025-05-28 09:57:23 +03:00
LICENSE
Makefile feat(analytics) drop defunct Google Analytics integration 2025-02-03 22:44:12 +01:00
manifest.json
metro.config.js
package-lock.json feat(pip): Add Picture-in-Picture support for Electron 2025-12-04 16:04:10 -06:00
package.json chore(deps) lib-jitsi-meet@latest (#16706) 2025-11-25 11:57:53 -06:00
plugin.head.html
pwa-worker.js
react-native.config.js feat(ios) remove Apple Watch app 2025-10-09 16:43:18 +02:00
readme-img1.png
README.md fix(readme): Fixes badge icon and f-droid link. 2025-01-09 12:38:11 -06:00
SECURITY.md
title.html
tsconfig.native.json feat(pip): Add Picture-in-Picture support for Electron 2025-12-04 16:04:10 -06:00
tsconfig.web.json feat: Adds ts rule noImplicitOverride and fix errors. 2025-03-12 11:40:07 -05:00
webpack.config.js feat(pip): Add Picture-in-Picture support for Electron 2025-12-04 16:04:10 -06:00

Jitsi Meet

Jitsi Meet is a set of Open Source projects which empower users to use and deploy video conferencing platforms with state-of-the-art video quality and features.



Amongst others here are the main features Jitsi Meet offers:

  • Support for all current browsers
  • Mobile applications
  • Web and native SDKs for integration
  • HD audio and video
  • Content sharing
  • Raise hand and reactions
  • Chat with private conversations
  • Polls
  • Virtual backgrounds

And many more!

Using Jitsi Meet

Using Jitsi Meet is straightforward, as it's browser based. Head over to meet.jit.si and give it a try. It's scalable and free to use. All you need is a Google, Facebook or GitHub account in order to start a meeting. All browsers are supported!

Using mobile? No problem, you can either use your mobile web browser or our fully-featured mobile apps:

Android Android (F-Droid) iOS

If you are feeling adventurous and want to get an early scoop of the features as they are being developed you can also sign up for our open beta testing here:

Running your own instance

If you'd like to run your own Jitsi Meet installation head over to the handbook to get started.

We provide Debian packages and a comprehensive Docker setup to make deployments as simple as possible. Advanced users also have the possibility of building all the components from source.

You can check the latest releases here.

Jitsi as a Service

If you like the branding capabilities of running your own instance but you'd like to avoid dealing with the complexity of monitoring, scaling and updates, JaaS might be for you.

8x8 Jitsi as a Service (JaaS) is an enterprise-ready video meeting platform that allows developers, organizations and businesses to easily build and deploy video solutions. With Jitsi as a Service we now give you all the power of Jitsi running on our global platform so you can focus on building secure and branded video experiences.

Documentation

All the Jitsi Meet documentation is available in the handbook.

Security

For a comprehensive description of all Jitsi Meet's security aspects, please check this link.

For a detailed description of Jitsi Meet's End-to-End Encryption (E2EE) implementation, please check this link.

For information on reporting security vulnerabilities in Jitsi Meet, see SECURITY.md.

Contributing

If you are looking to contribute to Jitsi Meet, first of all, thank you! Please see our guidelines for contributing.



Built with ❤️ by the Jitsi team at 8x8 and our community.