Skip to content

Add inline media examples and hand-drawn icons - #121

Merged
kixelated merged 11 commits into
mainfrom
codex/inline-media-examples
Aug 6, 2026
Merged

Add inline media examples and hand-drawn icons#121
kixelated merged 11 commits into
mainfrom
codex/inline-media-examples

Conversation

@kixelated

Copy link
Copy Markdown
Collaborator

Summary

  • add inline CLI, FFmpeg, and GStreamer walkthroughs to the demo page
  • add hand-drawn navigation cards for the new examples
  • replace home-page feature emoji with matching white-and-green illustrated icons

Why

The demo page previously focused on browser demos and did not show how to use the wider MoQ tooling directly. Keeping these examples inline makes the CLI and media pipeline workflows easier to discover while preserving the site’s visual style.

Impact

Visitors can copy commands for watching and publishing broadcasts with the MoQ CLI, FFmpeg, and GStreamer. The home page now uses consistent, accessible decorative icons instead of platform-dependent emoji.

Validation

  • just check
  • just build
  • desktop and 390px mobile visual checks
  • confirmed no horizontal overflow

@kixelated
kixelated marked this pull request as ready for review August 6, 2026 21:54
@kixelated kixelated closed this Aug 6, 2026
@kixelated kixelated reopened this Aug 6, 2026
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Added a reusable Astro feature component with constrained icon names and remote Kixel artwork. Redesigned the homepage feature list and added a MoQ Pro link. Added CLI, FFmpeg, and GStreamer setup and streaming instructions to the demo page. Updated links across the publish, source, and watch pages to point to current documentation and package sites.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main changes: inline media examples and hand-drawn icons.
Description check ✅ Passed The description directly explains the demo walkthroughs, navigation cards, homepage icons, rationale, impact, and validation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch codex/inline-media-examples

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/pages/demo.mdx`:
- Line 101: Update the Homebrew installation command in the macOS walkthrough to
use the moq-dev/tap/moq-cli formula instead of moq, keeping the surrounding CLI
setup instructions unchanged.

In `@src/pages/source.mdx`:
- Line 21: Update the hang entry in the documentation table to hyphenate the
compound adjective as “media-specific,” changing only the description text.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: c3c4ab04-9e85-485c-9458-e9e876092775

📥 Commits

Reviewing files that changed from the base of the PR and between 2330ef3 and 1191c71.

📒 Files selected for processing (6)
  • src/components/feature.astro
  • src/pages/demo.mdx
  • src/pages/index.mdx
  • src/pages/publish.mdx
  • src/pages/source.mdx
  • src/pages/watch.mdx

Comment thread src/pages/demo.mdx

```bash
# macOS
brew install moq-dev/tap/moq

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

curl -fsSL https://doc.moq.dev/concept/standard/interop \
  | grep -F 'brew install moq-dev/tap/moq-cli'

Repository: moq-dev/moq.dev

Length of output: 153


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "== demo.mdx line 101 context =="
sed -n '96,106p' src/pages/demo.mdx || true

echo "== exact formula references in docs =="
rg -n "brew install|moq-dev/tap" . --glob '!node_modules' --glob '!dist' --glob '!build' || true

echo "== fetch interop page title/headings and command blocks =="
curl -fsSL https://doc.moq.dev/concept/standard/interop \
  | python3 - <<'PY'
import re, sys
text = sys.stdin.read()
print(text[:10000])
print("\n--- brew install occurrences ---")
for i, line in enumerate(text.splitlines(),1):
    if "brew install" in line:
        print(f"{i}: {line}")
PY

Repository: moq-dev/moq.dev

Length of output: 1083


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

echo "== Homebrew formula presence/name if curl is available =="
python3 - <<'PY'
import json, sys, urllib.request
url = "https://formulae.brew.sh/api/formula.json"
try:
    data = json.load(urllib.request.urlopen(url, timeout=20))
except Exception as e:
    print("formulae json unavailable:", repr(e))
    sys.exit(0)
names = {f["name"] for f in data if isinstance(f, dict)}
print("cli:", "moq-cli" in names)
print("moq:", "moq" in names)
print("tap formulae:")
for f in data:
    if not isinstance(f, dict):
        continue
    name=f.get("name","")
    tap=f.get("tap","")
    if tap and "moq-dev" in str(tap):
        print(name, tap)
PY

Repository: moq-dev/moq.dev

Length of output: 398


🌐 Web query:

moq-dev/tap/moq-cli Homebrew formula

💡 Result:

To install the moq-cli command-line tool using Homebrew, you can use the official Homebrew tap provided by the moq-dev organization [1][2]. You can install it by running the following commands in your terminal: 1. Tap the repository: brew tap moq-dev/tap 2. Install the formula: brew install moq-dev/tap/moq-cli This formula is maintained by the moq-dev project to provide easy installation of their Media over QUIC tools [1][3]. It is automatically generated and updated via their release workflows [1]. Additional tools in the same tap include moq-relay, moq-clock, moq-token-cli, and moq-gst [1][2].

Citations:


🌐 Web query:

doc.moq.dev concept/standard/interop brew install moq-dev/tap

💡 Result:

The moq-dev project is an open-source implementation of Media over QUIC (MoQ), a next-generation live media protocol designed to provide real-time latency at scale [1][2]. Concept and Interoperability The project focuses on a protocol called "moq-lite," which is a forwards-compatible subset of the IETF's moq-transport draft [3][2]. The core philosophy behind moq-lite is to prioritize simplicity and immediate deployability, allowing it to function with any standard moq-transport relay, such as those provided by Cloudflare [3][2]. The documentation at doc.moq.dev explains these concepts, detailing how the protocol handles transport (using WebTransport, QUIC, or WebSockets) and media containers (like hang and cmaf) to achieve interoperability [4][3]. Installation via Homebrew The moq-dev/tap is a Homebrew tap that allows users to install various tools from the moq-dev workspace [5]. You can add the tap and install the available packages using the following commands: brew tap moq-dev/tap brew install moq-dev/tap/moq-relay brew install moq-dev/tap/moq-cli brew install moq-dev/tap/moq-clock brew install moq-dev/tap/moq-token-cli brew install moq-dev/tap/moq-gst These formulae are automatically generated from the moq-dev/moq GitHub repository [5]. Note that moq-dev is a distinct entity from other projects like moqtap, which has different installation instructions [6]. [5][1]

Citations:


Install the documented Homebrew formula.

The current MoQ installation command uses moq-dev/tap/moq, but the applicable Homebrew formula is moq-dev/tap/moq-cli. Use moq-cli so the macOS walkthrough can complete before the CLI examples.

Proposed fix
-brew install moq-dev/tap/moq
+brew install moq-dev/tap/moq-cli
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
brew install moq-dev/tap/moq
brew install moq-dev/tap/moq-cli
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/pages/demo.mdx` at line 101, Update the Homebrew installation command in
the macOS walkthrough to use the moq-dev/tap/moq-cli formula instead of moq,
keeping the surrounding CLI setup instructions unchanged.

Comment thread src/pages/source.mdx
| [moq-relay](https://github.com/moq-dev/moq/tree/main/rs/moq-relay) | A Moq server that connects publishers to subscribers, caching and deduplicating any subscriptions. Note that MoQ does not support P2P; instead it utilizes relays to scale out to many subscribers. |
| [moq-relay](https://doc.moq.dev/bin/relay/) | A Moq server that connects publishers to subscribers, caching and deduplicating any subscriptions. Note that MoQ does not support P2P; instead it utilizes relays to scale out to many subscribers. |
| [moq-clock](https://github.com/moq-dev/moq/tree/main/rs/moq-clock) | It's a clock! Just to demonstrate that MoQ can be used for more than media. |
| [hang](https://docs.rs/hang/latest/hang/) | A media specific library built on top of moq-lite. This provides a JSON "catalog" that describes the media tracks and "container" that literally consists of a timestamp. The actual media decoding/encoding is left to the platform. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use the compound adjective media-specific.

Change A media specific library to A media-specific library.

Proposed fix
- A media specific library built on top of moq-lite.
+ A media-specific library built on top of moq-lite.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| [hang](https://docs.rs/hang/latest/hang/) | A media specific library built on top of moq-lite. This provides a JSON "catalog" that describes the media tracks and "container" that literally consists of a timestamp. The actual media decoding/encoding is left to the platform. |
| [hang](https://docs.rs/hang/latest/hang/) | A media-specific library built on top of moq-lite. This provides a JSON "catalog" that describes the media tracks and "container" that literally consists of a timestamp. The actual media decoding/encoding is left to the platform. |
🧰 Tools
🪛 LanguageTool

[grammar] ~21-~21: Use a hyphen to join words.
Context: ...s://docs.rs/hang/latest/hang/) | A media specific library built on top of moq-lit...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/pages/source.mdx` at line 21, Update the hang entry in the documentation
table to hyphenate the compound adjective as “media-specific,” changing only the
description text.

Source: Linters/SAST tools

@kixelated
kixelated merged commit 5c3a81c into main Aug 6, 2026
@kixelated
kixelated deleted the codex/inline-media-examples branch August 6, 2026 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant