Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/explanation/agent-internals.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
type: explanation
title: Agent Internals
sidebar_position: 5
description: Deep dive into Fishjam agent architecture, lifecycle, and how to integrate without using a server SDK.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/explanation/data-channels.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
type: explanation
sidebar_position: 7
description: Send and receive arbitrary binary data between peers using Fishjam data channels.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/explanation/public-livestreams.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
type: explanation
title: Private vs Public Livestreams
sidebar_position: 6
description: Understand the difference between private and public livestreams in Fishjam and how to configure them.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/backend/fastapi-example.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
sidebar_position: 1
title: FastAPI
description: Example FastAPI server integration using the Fishjam Python SDK.
---

# FastAPI example
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/backend/fastify-example.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
sidebar_position: 0
title: Fastify
description: Example Fastify server integration using the Fishjam Node.js SDK.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/backend/production-deployment.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
type: how-to
description: Deploy your Fishjam backend safely to production, moving from sandbox to a production-ready setup.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/backend/server-setup.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 0
description: Install and configure a Fishjam server SDK for Node.js or Python, or integrate via the bare REST API.
---

import Tabs from "@theme/Tabs";
Expand Down
2 changes: 2 additions & 0 deletions docs/how-to/client/background-streaming.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
title: "Background calls"
sidebar_position: 13
sidebar_label: "Background calls 📱"
description: Enable calls running in the background on Android and iOS in React Native applications.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/client/connecting.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 3
description: Connect to a Fishjam room using a peer token and room URL obtained from your backend.
---

import Tabs from "@theme/Tabs";
Expand Down
2 changes: 2 additions & 0 deletions docs/how-to/client/custom-sources.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
title: "Custom sources"
sidebar_position: 8
sidebar_label: "Custom sources 🌐"
description: Stream non-standard video or audio sources (e.g. WebGL, WebGPU, Three.js) through Fishjam in web apps.
---

import Tabs from "@theme/Tabs";
Expand Down
2 changes: 2 additions & 0 deletions docs/how-to/client/debug-logging.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
title: "Debug logging"
sidebar_position: 9
sidebar_label: "Debug logging 🌐"
description: Enable SDK debug logging to troubleshoot connectivity and media issues in web applications.
---

# Debug logging <span className="badge badge--web">Web</span>
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/client/installation.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 1
description: Install the Fishjam client SDK for React (web) or React Native (mobile).
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/client/list-other-peers.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 5
description: Access and display media tracks from other peers and the local peer using the usePeers hook.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/client/managing-devices.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
sidebar_position: 4
sidebar_label: "Managing devices"
description: Select, switch, mute, and dynamically control camera and microphone devices.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/client/migration-guide.mdx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
title: "0.25.x Migration Guide"
sidebar_position: 14
sidebar_label: "0.25.x Migration Guide 📱"
---
Expand Down
2 changes: 2 additions & 0 deletions docs/how-to/client/picture-in-picture.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
title: "Picture in Picture"
sidebar_position: 11
sidebar_label: "Picture in Picture 📱"
description: Display video in a floating PiP window when the user backgrounds the app on Android or iOS.
---

import Tabs from "@theme/Tabs";
Expand Down
2 changes: 2 additions & 0 deletions docs/how-to/client/reconnection-handling.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
title: "Reconnect"
sidebar_position: 10
sidebar_label: "Reconnect 📱"
description: Handle automatic reconnection to a Fishjam room after connection loss in React Native apps.
---

# Reconnect <span className="badge badge--mobile">Mobile</span>
Expand Down
2 changes: 2 additions & 0 deletions docs/how-to/client/screensharing.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
title: "Screen sharing"
sidebar_position: 12
sidebar_label: "Screen sharing 📱"
description: Stream mobile device screen content to other peers in React Native applications.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/client/start-streaming.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
sidebar_position: 2
description: Initialize camera and microphone access and start streaming media in a Fishjam room.
---

import Tabs from "@theme/Tabs";
Expand Down
2 changes: 2 additions & 0 deletions docs/how-to/client/stream-middleware.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
title: "Stream middleware"
sidebar_position: 7
sidebar_label: "Stream middleware 🌐"
description: Intercept and transform media tracks before sending them to Fishjam, enabling effects and custom encodings.
---

# Stream middleware <span className="badge badge--web">Web</span>
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/features/audio-only-calls.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
type: how-to
description: Create audio-only rooms and livestreams for voice-only use cases at a discounted cost.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/features/sandbox-api-testing.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
type: how-to
description: Use the Sandbox API to create rooms and peers for testing without setting up your own backend server.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/features/selective-subscriptions.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
type: how-to
title: Selective Subscriptions
description: Configure manual subscription mode so your backend controls which peers receive which streams.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/features/text-chat.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
type: how-to
title: Text Chat
description: Implement peer-to-peer text chat in your application using Fishjam data channels.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/how-to/features/whip-whep.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
type: how-to
title: WHIP/WHEP with Fishjam
description: Publish and receive Fishjam livestreams directly using the WHIP and WHEP protocols.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/tutorials/agents.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
type: tutorial
sidebar_position: 4
title: Agents
description: Introduction to Fishjam agents and how to implement them using server SDKs.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/tutorials/backend-quick-start.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
type: tutorial
sidebar_position: 2
description: Set up a backend server to create rooms and manage peers for your Fishjam application.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/tutorials/gemini-live-integration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
type: tutorial
sidebar_position: 5
title: Gemini Live Integration
description: Build a real-time speech-to-speech voice assistant using Fishjam and Google's Multimodal Live API.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/tutorials/livestreaming.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
type: tutorial
sidebar_position: 3
title: Livestreaming
description: Set up livestreaming with Fishjam, from sandbox prototyping to production deployment with server SDKs.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/tutorials/react-native-quick-start.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
type: tutorial
sidebar_position: 0
description: Step-by-step guide to integrating Fishjam into a React Native application with a working video streaming app.
---

import Tabs from "@theme/Tabs";
Expand Down
1 change: 1 addition & 0 deletions docs/tutorials/react-quick-start.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
type: tutorial
sidebar_position: 1
description: Step-by-step guide to integrating Fishjam into a React web application with a working video streaming app.
---

import Tabs from "@theme/Tabs";
Expand Down
26 changes: 26 additions & 0 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,32 @@ const config: Config = {
...typedocConfig,
},
],
[
"docusaurus-plugin-llms",
{
generateLLMsTxt: true,
generateLLMsFullTxt: true,
processingBatchSize: 8,
title: "Fishjam Docs",
description:
"Fishjam is a multimedia streaming toolkit for building real-time video and audio applications with managed WebRTC infrastructure, client SDKs (React, React Native), and server SDKs (Node.js, Python).",
includeOrder: [
"tutorials/**/*.{md,mdx}",
"how-to/**/*.{md,mdx}",
"explanation/**/*.{md,mdx}",
"api/reference.{md,mdx}",
"api/mobile/index.{md,mdx}",
"api/web/index.{md,mdx}",
"api/server/index.{md,mdx}",
],
ignoreFiles: ["**/type-aliases/**", "**/_common/**"],
includeUnmatchedLast: false,
excludeImports: true,
removeDuplicateHeadings: true,
rootContent:
"Curated index of Fishjam documentation. Start with Tutorials for quick starts, Explanation for concepts, How-to for guides, and API for SDK references.",
},
],
],
};

Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
"@google/genai": "^1.35.0",
"@shikijs/twoslash": "^3.6.0",
"cspell": "^9.1.2",
"docusaurus-plugin-llms": "^0.3.0",
"docusaurus-plugin-typedoc": "1.4.0",
"prettier": "^3.5.3",
"typedoc": "0.28.5",
Expand Down
34 changes: 33 additions & 1 deletion yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8203,7 +8203,7 @@ __metadata:
languageName: node
linkType: hard

"brace-expansion@npm:^2.0.1":
"brace-expansion@npm:^2.0.1, brace-expansion@npm:^2.0.2":
version: 2.0.2
resolution: "brace-expansion@npm:2.0.2"
dependencies:
Expand Down Expand Up @@ -10256,6 +10256,19 @@ __metadata:
languageName: node
linkType: hard

"docusaurus-plugin-llms@npm:^0.3.0":
version: 0.3.0
resolution: "docusaurus-plugin-llms@npm:0.3.0"
dependencies:
gray-matter: "npm:^4.0.3"
minimatch: "npm:^9.0.3"
yaml: "npm:^2.8.1"
peerDependencies:
"@docusaurus/core": ^3.0.0
checksum: 10c0/39b1284a512b2226330a1c39919a5087d7b7b482951478e0f26f16d62c2f05eee2585661635f6ac1636526f5c8de576066dc68a449253d86a9ebce93f6df2514
languageName: node
linkType: hard

"docusaurus-plugin-typedoc@npm:1.4.0":
version: 1.4.0
resolution: "docusaurus-plugin-typedoc@npm:1.4.0"
Expand Down Expand Up @@ -11348,6 +11361,7 @@ __metadata:
clsx: "npm:^2.0.0"
cspell: "npm:^9.1.2"
docusaurus-lunr-search: "npm:3.6.0"
docusaurus-plugin-llms: "npm:^0.3.0"
docusaurus-plugin-typedoc: "npm:1.4.0"
expo-camera: "npm:^16.1.8"
fastify: "npm:^5.4.0"
Expand Down Expand Up @@ -15232,6 +15246,15 @@ __metadata:
languageName: node
linkType: hard

"minimatch@npm:^9.0.3":
version: 9.0.9
resolution: "minimatch@npm:9.0.9"
dependencies:
brace-expansion: "npm:^2.0.2"
checksum: 10c0/0b6a58530dbb00361745aa6c8cffaba4c90f551afe7c734830bd95fd88ebf469dd7355a027824ea1d09e37181cfeb0a797fb17df60c15ac174303ac110eb7e86
languageName: node
linkType: hard

"minimatch@npm:^9.0.4, minimatch@npm:^9.0.5":
version: 9.0.5
resolution: "minimatch@npm:9.0.5"
Expand Down Expand Up @@ -20970,6 +20993,15 @@ __metadata:
languageName: node
linkType: hard

"yaml@npm:^2.8.1":
version: 2.8.2
resolution: "yaml@npm:2.8.2"
bin:
yaml: bin.mjs
checksum: 10c0/703e4dc1e34b324aa66876d63618dcacb9ed49f7e7fe9b70f1e703645be8d640f68ab84f12b86df8ac960bac37acf5513e115de7c970940617ce0343c8c9cd96
languageName: node
linkType: hard

"yargs-parser@npm:^21.0.0, yargs-parser@npm:^21.1.1":
version: 21.1.1
resolution: "yargs-parser@npm:21.1.1"
Expand Down
Loading