diff --git a/js/web/src/components/dashboard/moderators.tsx b/js/web/src/components/dashboard/moderators.tsx
index 7bb61dd50..09ef91d07 100644
--- a/js/web/src/components/dashboard/moderators.tsx
+++ b/js/web/src/components/dashboard/moderators.tsx
@@ -377,7 +377,7 @@ function AddModeratorDialog({
setHandleOrDid(e.target.value);
if (error) setError(null);
}}
- placeholder="handle.bsky.social or did:plc:…"
+ placeholder={t("moderators-handle-placeholder")}
onKeyDown={(e) => {
if (e.key === "Enter") handleAdd();
}}
diff --git a/js/web/src/components/dashboard/stream-monitor.tsx b/js/web/src/components/dashboard/stream-monitor.tsx
index 562034203..cdc390401 100644
--- a/js/web/src/components/dashboard/stream-monitor.tsx
+++ b/js/web/src/components/dashboard/stream-monitor.tsx
@@ -74,6 +74,7 @@ export function StreamMonitorWidget({
onError={(message) =>
captureError(message, { user, source: "stream-monitor" })
}
+ isStreamer={true}
/>
) : (
diff --git a/js/web/src/components/player/player.tsx b/js/web/src/components/player/player.tsx
index d1193cd3c..cdb77b9d0 100644
--- a/js/web/src/components/player/player.tsx
+++ b/js/web/src/components/player/player.tsx
@@ -1,10 +1,3 @@
-// Public
component. Owns the video element and the shared
-// chrome (controls overlay, error display, fullscreen, auto-hide,
-// click-to-toggle). The actual playback source is handled by a
-// backend, currently , soon and others.
-// Backends are rendered as siblings of the