{"id":13614142,"url":"https://github.com/livekit/components-js","last_synced_at":"2025-05-14T16:13:22.287Z","repository":{"id":65585511,"uuid":"523016004","full_name":"livekit/components-js","owner":"livekit","description":"Official open source React components and examples for building with LiveKit.","archived":false,"fork":false,"pushed_at":"2025-05-13T05:13:12.000Z","size":14724,"stargazers_count":251,"open_issues_count":46,"forks_count":107,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-05-13T06:23:10.315Z","etag":null,"topics":["livekit","react","webrtc"],"latest_commit_sha":null,"homepage":"https://livekit.io","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/livekit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-08-09T15:54:54.000Z","updated_at":"2025-05-13T05:10:08.000Z","dependencies_parsed_at":"2023-12-24T08:30:01.758Z","dependency_job_id":"44263553-370d-442a-98d4-e808729e0c68","html_url":"https://github.com/livekit/components-js","commit_stats":{"total_commits":1042,"total_committers":29,"mean_commits":35.93103448275862,"dds":0.5614203454894433,"last_synced_commit":"146272c1654c4b9dc86996ff85804a8ee4a0780c"},"previous_names":[],"tags_count":295,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livekit%2Fcomponents-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livekit%2Fcomponents-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livekit%2Fcomponents-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livekit%2Fcomponents-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/livekit","download_url":"https://codeload.github.com/livekit/components-js/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253886770,"owners_count":21979133,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["livekit","react","webrtc"],"created_at":"2024-08-01T20:00:57.593Z","updated_at":"2025-05-14T16:13:22.237Z","avatar_url":"https://github.com/livekit.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003c!--BEGIN_BANNER_IMAGE--\u003e\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"/.github/banner_dark.png\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"/.github/banner_light.png\"\u003e\n  \u003cimg style=\"width:100%;\" alt=\"The LiveKit icon, the name of the repository and some sample code in the background.\" src=\"https://raw.githubusercontent.com/livekit/components-js/main/.github/banner_light.png\"\u003e\n\u003c/picture\u003e\n\n\u003c!--END_BANNER_IMAGE--\u003e\n\n\u003ch1\u003e\n  LiveKit Components\n\u003c/h1\u003e\n\n\u003c!--BEGIN_DESCRIPTION--\u003e\nUse this SDK to add realtime video, audio and data features to your React app. By connecting to \u003ca href=\"https://cloud.livekit.io/\"\u003eLiveKit Cloud\u003c/a\u003e or a self-hosted server, you can quickly build applications such as multi-modal AI, live streaming, or video calls with just a few lines of code.\n\u003c!--END_DESCRIPTION--\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n![LiveKit Components Preview](./.github/assets/livekit-meet.jpg)\n\n## Quick Start\n\nFirst add the library to your project:\n\n```shell\nnpm i @livekit/components-react\n```\n\nThen use any of our pre-fabricated or helper components:\n\n```tsx\nimport { LiveKitRoom, VideoConference } from '@livekit/components-react';\n\nconst TOKEN = 'generated-jwt';\nconst WS_URL = 'wss://my-livekit-server';\n\nexport default function Example() {\n  return (\n    \u003cLiveKitRoom token={TOKEN} serverUrl={WS_URL} connect={true}\u003e\n      \u003cVideoConference /\u003e\n    \u003c/LiveKitRoom\u003e\n  );\n}\n```\n\n## Docs\n\nFor more information checkout the [LiveKit Components Docs](https://docs.livekit.io/reference/components/react/)\n\n## Examples\n\nThere are some basic examples of how to use and customize LiveKit components in this mono repo. They are located in the nextjs examples folder [`/examples/nextjs`](./examples/nextjs/). In order to set the examples up locally follow the [Development Setup](#development-setup).\n\nWe also have a fully featured video conferencing application built on top of LiveKit Components. Start a video conference at [meet.livekit.io](https://meet.livekit.io) and take a look at the implementation in the [livekit-examples/meet](https://github.com/livekit-examples/meet) repo.\n\n## Development Setup\n\nIf you are interested in contributing to the project or running the examples that are part of this mono-repository, then you must first set up your development environment.\n\n### Setup Monorepo\n\nThis repo consists of multiple packages that partly build on top of each other.\nIt relies on pnpm workspaces and [Turborepo](https://turbo.build/repo/docs) (which gets installed automatically).\n\nClone the repo and run `pnpm install` the root level:\n\n```shell\npnpm install\n```\n\nIn order to link up initial dependencies and check whether everything has installed correctly run\n\n```shell\npnpm build\n```\n\nThis will build all the packages in `/packages` and the examples in `/examples` once.\n\nAfter that you can use a more granular command to only rebuild the packages you are working on.\nE.g. to test and automatically rebuild package dependencies for the nextjs example, run:\n\n```shell\npnpm dev:next\n```\n\n\u003e **Note**\n\u003e For the examples to work you'll need to make sure to copy the the contents of .env.example in the specific example folder to a newly created .env.local file and adjust the values accordingly to your livekit server setup.\n\n## FAQ\n\n\u003cdetails\u003e\n\u003csummary\u003e\nWhy is there a `@livekit/components-core` package?\n\u003c/summary\u003e\nBy abstracting most of the state handling logic into a common core we wanted to make sure that other framework implementations can be created with minimal code duplication. We chose observables as the main data structure for this core as its concepts translate really well to for example React's hooks, solid's signals, Svelte's stores, Vue's composables, and angular loves observables out of the box.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\nDid you consider using Custom Elements?\n\u003c/summary\u003e\nYes, we did consider building LK Components with custom elements (web components). We ultimately decided against it in order to give users the option to develop within the constraints of their chosen framework with all its specific concepts (e.g. in the case of react hooks, context etc.). That said the road towards supporting custom elements isn't entirely closed off. If the adoption of custom elements gains traction we can imagine providing a framework implementation that additionally compiles to custom elements (e.g. solid or svelte).\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\nWill there be an implementation for my favorite framework?\n\u003c/summary\u003e\nThe highest priority is currently to get the core and react packages to a stable version that people love to work with. Once this is done we will decide on what other frameworks we might to support officially. If you want to develop an implementation for your favorite framework based on the core package we'd love to talk to you about it!\n\u003c/details\u003e\n\n\u003c!--NAV_START--\u003e\n\n## Monorepo Navigation\n\n- [Home 👈](/README.md)\n- **Framework Implementations**:\n  - [React](/packages/react/README.md)\n- **Examples**\n  - [Next.js](/examples/nextjs/README.md)\n- **Internal Packages**\n  - [Core](/packages/core/README.md)\n  - [Styles](/packages/styles/README.md)\n\n\u003c!--NAV_END--\u003e\n\u003c!--BEGIN_REPO_NAV--\u003e\n\u003cbr/\u003e\u003ctable\u003e\n\u003cthead\u003e\u003ctr\u003e\u003cth colspan=\"2\"\u003eLiveKit Ecosystem\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\u003ctd\u003eLiveKit SDKs\u003c/td\u003e\u003ctd\u003e\u003ca href=\"https://github.com/livekit/client-sdk-js\"\u003eBrowser\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/client-sdk-swift\"\u003eiOS/macOS/visionOS\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/client-sdk-android\"\u003eAndroid\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/client-sdk-flutter\"\u003eFlutter\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/client-sdk-react-native\"\u003eReact Native\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/rust-sdks\"\u003eRust\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/node-sdks\"\u003eNode.js\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/python-sdks\"\u003ePython\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/client-sdk-unity\"\u003eUnity\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/client-sdk-unity-web\"\u003eUnity (WebGL)\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eServer APIs\u003c/td\u003e\u003ctd\u003e\u003ca href=\"https://github.com/livekit/node-sdks\"\u003eNode.js\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/server-sdk-go\"\u003eGolang\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/server-sdk-ruby\"\u003eRuby\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/server-sdk-kotlin\"\u003eJava/Kotlin\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/python-sdks\"\u003ePython\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/rust-sdks\"\u003eRust\u003c/a\u003e · \u003ca href=\"https://github.com/agence104/livekit-server-sdk-php\"\u003ePHP (community)\u003c/a\u003e · \u003ca href=\"https://github.com/pabloFuente/livekit-server-sdk-dotnet\"\u003e.NET (community)\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eUI Components\u003c/td\u003e\u003ctd\u003e\u003cb\u003eReact\u003c/b\u003e · \u003ca href=\"https://github.com/livekit/components-android\"\u003eAndroid Compose\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/components-swift\"\u003eSwiftUI\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eAgents Frameworks\u003c/td\u003e\u003ctd\u003e\u003ca href=\"https://github.com/livekit/agents\"\u003ePython\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/agents-js\"\u003eNode.js\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/agent-playground\"\u003ePlayground\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eServices\u003c/td\u003e\u003ctd\u003e\u003ca href=\"https://github.com/livekit/livekit\"\u003eLiveKit server\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/egress\"\u003eEgress\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/ingress\"\u003eIngress\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/sip\"\u003eSIP\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eResources\u003c/td\u003e\u003ctd\u003e\u003ca href=\"https://docs.livekit.io\"\u003eDocs\u003c/a\u003e · \u003ca href=\"https://github.com/livekit-examples\"\u003eExample apps\u003c/a\u003e · \u003ca href=\"https://livekit.io/cloud\"\u003eCloud\u003c/a\u003e · \u003ca href=\"https://docs.livekit.io/home/self-hosting/deployment\"\u003eSelf-hosting\u003c/a\u003e · \u003ca href=\"https://github.com/livekit/livekit-cli\"\u003eCLI\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!--END_REPO_NAV--\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivekit%2Fcomponents-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flivekit%2Fcomponents-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivekit%2Fcomponents-js/lists"}