-
Notifications
You must be signed in to change notification settings - Fork 3
FCE-3561: Advertise the Fishjam Skill across the docs #274
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| #!/bin/sh | ||
| # | ||
| # Pre-commit hook mirroring the fast static checks from CI | ||
| # (.github/workflows/static_check.yml) so commits don't reach CI with | ||
| # formatting, spelling, or type errors. | ||
| # | ||
| # `yarn build` is intentionally NOT run here: it recompiles the git | ||
| # submodules and takes minutes, which is too slow for a commit hook. | ||
| # CI still runs the full build. | ||
| # | ||
| # Bypass in an emergency with: git commit --no-verify | ||
|
|
||
| set -e | ||
|
|
||
| echo "pre-commit: running static checks (format, spellcheck, typecheck)..." | ||
|
|
||
| yarn format:check | ||
| yarn spellcheck | ||
| yarn typecheck | ||
|
|
||
| echo "pre-commit: all static checks passed." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| --- | ||
| sidebar_position: 1 | ||
| title: Build Fishjam apps with AI | ||
| sidebar_label: Build with AI | ||
| description: "The Fishjam Skill gives your AI coding assistant up-to-date, correct guidance for building Fishjam apps: right SDK, real APIs, secure auth." | ||
| slug: /ai-skill | ||
| --- | ||
|
|
||
| # Build Fishjam apps with AI | ||
|
|
||
| The **Fishjam Skill** gives any skills-compatible coding assistant accurate, always-current Fishjam expertise. With it installed, your assistant generates code that uses the right SDK, real API names, and secure auth patterns from the first prompt. | ||
|
|
||
| ## What it covers | ||
|
|
||
| The skill is one entry in Software Mansion's `skills` plugin, and it spans the whole Fishjam stack — backend, web, and mobile: | ||
|
|
||
| - **Platform fundamentals** — rooms, peers, tracks, the two-tier auth model, notifications, and the REST API. | ||
| - **Server SDKs (Node & Python)** — including AI voice agents and the Gemini Live integration. | ||
| - **React web client** — the `@fishjam-cloud/react-client` hooks and providers. | ||
| - **React Native / Expo client** — permissions, foreground service, CallKit, screen share, and Picture-in-Picture. | ||
|
|
||
| ## Install | ||
|
|
||
| Install the skill into Claude Code (recommended) or any skills-compatible assistant: | ||
|
|
||
| ```bash | ||
| npx skills add software-mansion-labs/skills | ||
| ``` | ||
|
|
||
| ## How it activates | ||
|
|
||
| No command needed. The skill auto-loads whenever you mention Fishjam or a Fishjam SDK/API in your prompts, like `@fishjam-cloud/react-client`, `FishjamClient`, or `managementToken`. | ||
|
|
||
| ## Why it helps | ||
|
|
||
| The skill turns your assistant into a Fishjam specialist: | ||
|
|
||
| - **Always current** — it tracks the latest SDKs and APIs, so your assistant builds on today's Fishjam instead of stale examples. | ||
| - **Secure by default** — authentication and tokens follow the patterns we recommend for production, from the first line of code. | ||
| - **Full-stack in one place** — backend, web, and mobile share the same guidance, so features connect cleanly end to end. | ||
|
|
||
| :::tip | ||
| The skill follows the latest Fishjam release, so your assistant always works against current SDKs and APIs. | ||
| ::: | ||
|
|
||
| ## Links | ||
|
|
||
| - Source and installation details: [software-mansion-labs/skills](https://github.com/software-mansion-labs/skills) (MIT). | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,128 @@ | ||
| .callout { | ||
| display: flex; | ||
| flex-direction: column; | ||
| gap: 1.25rem; | ||
| margin: 2.5rem 0; | ||
| padding: 1.75rem 2rem; | ||
| border-radius: calc(var(--ifm-global-radius) * 1.5); | ||
| background: linear-gradient(135deg, #fcf4e4 0%, #fdeae4 100%); | ||
| border: 1px solid #f2d7cf; | ||
| } | ||
|
|
||
| .body { | ||
| display: flex; | ||
| flex-direction: column; | ||
| gap: 0.5rem; | ||
| } | ||
|
|
||
| .eyebrow { | ||
| margin: 0; | ||
| font-size: 0.78rem; | ||
| font-weight: 700; | ||
| letter-spacing: 0.08em; | ||
| text-transform: uppercase; | ||
| color: var(--ifm-color-primary); | ||
| } | ||
|
|
||
| .heading { | ||
| margin: 0; | ||
| font-size: 1.4rem; | ||
| font-weight: 700; | ||
| line-height: 1.2; | ||
| color: #221f1c; | ||
| } | ||
|
|
||
| .subcopy { | ||
| margin: 0; | ||
| max-width: 54ch; | ||
| font-size: 0.98rem; | ||
| line-height: 1.55; | ||
| color: #5b544d; | ||
| } | ||
|
|
||
| .actions { | ||
| display: flex; | ||
| flex-wrap: wrap; | ||
| align-items: center; | ||
| gap: 0.85rem 1.5rem; | ||
| } | ||
|
|
||
| .command { | ||
| display: inline-flex; | ||
| align-items: center; | ||
| gap: 0.65rem; | ||
| max-width: 100%; | ||
| padding: 0.55rem 0.55rem 0.55rem 0.9rem; | ||
| background: #221f1c; | ||
| border-radius: 8px; | ||
| box-shadow: 0 1.5px 3px 0 rgb(0 0 0 / 15%); | ||
| } | ||
|
|
||
| .prompt { | ||
| color: var(--ifm-color-primary); | ||
| font-family: var(--ifm-font-family-monospace); | ||
| font-weight: 700; | ||
| user-select: none; | ||
| } | ||
|
|
||
| .commandText { | ||
| min-width: 0; | ||
| overflow-x: auto; | ||
| padding: 0; | ||
| border: none; | ||
| background: transparent; | ||
| color: #f4f1ea; | ||
| font-family: var(--ifm-font-family-monospace); | ||
| font-size: 0.86rem; | ||
| white-space: nowrap; | ||
| } | ||
|
|
||
| .copyButton { | ||
| flex-shrink: 0; | ||
| min-width: 4.25rem; | ||
| padding: 0.35rem 0.7rem; | ||
| border: none; | ||
| border-radius: 6px; | ||
| background: rgb(255 255 255 / 10%); | ||
| color: #f4f1ea; | ||
| font-family: var(--ifm-font-family-base); | ||
| font-size: 0.8rem; | ||
| font-weight: 600; | ||
| cursor: pointer; | ||
| transition: | ||
| background var(--ifm-transition-fast) ease, | ||
| color var(--ifm-transition-fast) ease; | ||
| } | ||
|
|
||
| .copyButton:hover { | ||
| background: var(--ifm-color-primary); | ||
| color: #fff; | ||
| } | ||
|
|
||
| .learnMore { | ||
| font-size: 0.95rem; | ||
| font-weight: 700; | ||
| color: var(--ifm-color-primary); | ||
| } | ||
|
|
||
| .learnMore:hover { | ||
| text-decoration: underline; | ||
| } | ||
|
|
||
| @media (max-width: 600px) { | ||
| .callout { | ||
| padding: 1.5rem 1.25rem; | ||
| } | ||
|
|
||
| .heading { | ||
| font-size: 1.25rem; | ||
| } | ||
|
|
||
| .command { | ||
| width: 100%; | ||
| } | ||
|
|
||
| .commandText { | ||
| flex: 1; | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| import React, { useState } from "react"; | ||
| import Link from "@docusaurus/Link"; | ||
| import { useVersionedLink } from "@site/src/hooks/useVersionedLink"; | ||
| import styles from "./index.module.css"; | ||
|
|
||
| const INSTALL_COMMAND = "npx skills add software-mansion-labs/skills"; | ||
|
|
||
| export default function SkillCallout() { | ||
| const skillHref = useVersionedLink("ai-skill"); | ||
| const [copied, setCopied] = useState(false); | ||
|
|
||
| const copy = () => { | ||
| if (!navigator?.clipboard) return; | ||
| navigator.clipboard | ||
| .writeText(INSTALL_COMMAND) | ||
| .then(() => { | ||
| setCopied(true); | ||
| setTimeout(() => setCopied(false), 2000); | ||
| }) | ||
| .catch(() => {}); | ||
| }; | ||
|
PiotrWodecki marked this conversation as resolved.
|
||
|
|
||
| return ( | ||
| <aside className={styles.callout}> | ||
| <div className={styles.body}> | ||
| <p className={styles.eyebrow}>✨ Build with AI</p> | ||
| <p className={styles.heading}> | ||
| Your coding assistant, fluent in Fishjam | ||
| </p> | ||
| <p className={styles.subcopy}> | ||
| Install the Fishjam Skill and your coding assistant writes accurate, | ||
| up-to-date Fishjam code across backend, web, and mobile. | ||
| </p> | ||
| </div> | ||
|
|
||
| <div className={styles.actions}> | ||
| <div className={styles.command}> | ||
| <span className={styles.prompt} aria-hidden="true"> | ||
| $ | ||
| </span> | ||
| <code className={styles.commandText}>{INSTALL_COMMAND}</code> | ||
| <button | ||
| type="button" | ||
| className={styles.copyButton} | ||
| onClick={copy} | ||
| aria-label="Copy install command" | ||
| > | ||
| {copied ? "Copied" : "Copy"} | ||
| </button> | ||
| </div> | ||
| <Link className={styles.learnMore} href={skillHref}> | ||
| Learn about the Fishjam Skill → | ||
| </Link> | ||
| </div> | ||
| </aside> | ||
| ); | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| --- | ||
| sidebar_position: 1 | ||
| title: Build Fishjam apps with AI | ||
| sidebar_label: Build with AI | ||
| description: "The Fishjam Skill gives your AI coding assistant up-to-date, correct guidance for building Fishjam apps: right SDK, real APIs, secure auth." | ||
| slug: /ai-skill | ||
| --- | ||
|
PiotrWodecki marked this conversation as resolved.
|
||
|
|
||
| # Build Fishjam apps with AI | ||
|
|
||
| The **Fishjam Skill** gives any skills-compatible coding assistant accurate, always-current Fishjam expertise. With it installed, your assistant generates code that uses the right SDK, real API names, and secure auth patterns from the first prompt. | ||
|
|
||
| ## What it covers | ||
|
|
||
| The skill is one entry in Software Mansion's `skills` plugin, and it spans the whole Fishjam stack — backend, web, and mobile: | ||
|
|
||
| - **Platform fundamentals** — rooms, peers, tracks, the two-tier auth model, notifications, and the REST API. | ||
| - **Server SDKs (Node & Python)** — including AI voice agents and the Gemini Live integration. | ||
| - **React web client** — the `@fishjam-cloud/react-client` hooks and providers. | ||
| - **React Native / Expo client** — permissions, foreground service, CallKit, screen share, and Picture-in-Picture. | ||
|
|
||
| ## Install | ||
|
|
||
| Install the skill into Claude Code (recommended) or any skills-compatible assistant: | ||
|
|
||
| ```bash | ||
| npx skills add software-mansion-labs/skills | ||
| ``` | ||
|
|
||
| ## How it activates | ||
|
|
||
| No command needed. The skill auto-loads whenever you mention Fishjam or a Fishjam SDK/API in your prompts, like `@fishjam-cloud/react-client`, `FishjamClient`, or `managementToken`. | ||
|
|
||
| ## Why it helps | ||
|
|
||
| The skill turns your assistant into a Fishjam specialist: | ||
|
|
||
| - **Always current** — it tracks the latest SDKs and APIs, so your assistant builds on today's Fishjam instead of stale examples. | ||
| - **Secure by default** — authentication and tokens follow the patterns we recommend for production, from the first line of code. | ||
| - **Full-stack in one place** — backend, web, and mobile share the same guidance, so features connect cleanly end to end. | ||
|
|
||
| :::tip | ||
| The skill follows the latest Fishjam release, so your assistant always works against current SDKs and APIs. | ||
| ::: | ||
|
|
||
| ## Links | ||
|
|
||
| - Source and installation details: [software-mansion-labs/skills](https://github.com/software-mansion-labs/skills) (MIT). | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.