Multi-Platform Brand Intelligence
Hear every mention, on every platform, before it reaches you the wrong way.
Sonar is a self-hosted listening platform that continuously scans Reddit, YouTube, and X for brand and product mentions, delivers them into a single structured multi-user dashboard, and generates AI-written intelligence reports on demand.
Reddit
YouTube
X / Twitter
3
Platforms monitored from one feed
1 min – 2 h
Polling, tuned per platform
Dual
Ingestion paths (crawlers + F5Bot)
Zero
Servers or databases to manage
Core Concepts
Topics
The top-level container for a brand, product, or subject you want to track. Each topic carries its own colour label, visibility setting, retention window, keyword list, and platform selection. Topics can be private or shared—shared topics are visible only to users the owner explicitly grants access to.
Keywords
Keywords belong to a topic and come in two modes. Include terms trigger a match when found in a post, comment, video, or tweet. Exclude terms act as a suppression filter—both filters are evaluated against the full body text, not just the title, on every platform. Any mention containing an excluded term is silently dropped, regardless of include matches.
Platforms
Every topic chooses which crawlers work for it. Enable Reddit, YouTube, or X in any combination—per topic, at creation or any time after. A support topic might watch all three; a niche community topic might stay Reddit-only. Mentions from every platform land in the same feed, normalised to one shape, with a platform badge on every card.
How Mentions Are Captured
A Cloudflare Cron Worker fires every minute and dispatches to one crawler per platform, each on a cadence tuned to that platform’s economics. Every crawler normalises its results into the same mention shape, so the rest of the system never cares where a mention came from.
Reddit — posts and comments every minute while the dashboard is active, every 10 min when idle
YouTube — video search plus comment scanning every 2 hours, with a daily API quota budget
X — latest-tweet keyword search every 15 minutes
Last-seen cursor per keyword and platform—re-ingestion of seen mentions is impossible
Engagement captured per platform: upvotes, video likes, or tweet likes at time of capture
F5Bot is a free Reddit notification service. Configure it to email alerts to a Cloudflare-routed address and the worker ingests them automatically—no API key required, no scraping overhead. A second, independent net under the Reddit crawler.
Cloudflare Email Routing forwards to the Worker email handler
Keyword matched against subject line, Reddit URLs extracted from body
Per-topic opt-in—F5Bot ingestion must be explicitly enabled per topic by an admin
If the crawler and F5Bot both find the same mention, it is upserted—not duplicated—and tagged
both
Features
01
Reddit, YouTube, and X are crawled through a shared adapter layer and land in the same dashboard as one normalised stream. Each topic picks its own crawler mix, and every mention card carries a platform badge, the community it came from, and a direct link to the source.
02
On demand, the system compiles every mention for a topic within a chosen time range—across all enabled platforms—and sends them to an LLM for summarisation. The result is a written brief covering volume, trending themes, sentiment, top communities, and a per-platform breakdown—not a table of raw links.
Daily
Weekly
Monthly
Custom range
All time
Default Model
claude-haiku-4.5
via OpenRouter API
Model-agnostic
Swap to any OpenRouter-supported model via env var
03
Topics default to private—only the owner sees them. Owners can share any topic with named users individually. Admins and the owner can see and manage all topics regardless of sharing.
Private
Shared
04
Each topic has a configurable active window. The cron automatically prunes mentions older than that window—keeping the database lean without manual cleanup. All-time retention is admin-only to manage resource usage and ensure legitimate use.
7d
14d
30d
90d
180d
∞ admin
05
Each mention can be marked reviewed or unreviewed—the reviewer’s username is recorded. Mentions can also be permanently deleted. Filter the feed to triage new signal or audit what’s been actioned.
06
Triggered automatically on topic creation and whenever a retention window is extended—so a new topic is never empty from day one. Can also be triggered manually at any time by the topic owner.
07
Every feed view supports multi-dimensional filtering. Combine any of the dimensions below to narrow to exactly the signal you need.
Platform: Reddit / YouTube / X
Keyword
Topic
Community / subreddit / channel
Type: post / comment / video / tweet
Source: crawler / F5Bot / both
Reviewed / Unreviewed
Free-text search
08
Access is scoped by role. Users only ever see the topics they own or that have been shared with them. Elevated roles progressively unlock platform-wide management capabilities.
Admin
Platform-wide topic, configuration, and user management.
Regular User
Sees only their own topics and those explicitly shared with them. Can create topics, add keywords, and generate reports.
09
A dedicated management interface for users with the can_manage_users permission. Covers user management, per-topic platform and F5Bot toggles, and a platform status view showing API key configuration, YouTube quota used today, and X crawl spend.
10
Closes the loop between community complaints and internal bugs. Jira issues sync twice daily. Any mention card can be linked to one or more Jira keys. When a linked issue transitions to Done, the mention is automatically flagged for follow-up. Once the team responds to the original post, a user marks it complete, recording their name against the action.
2× daily sync
Link mentions to bugs
Follow-up tracking
Completion attribution
Manual refresh
Technology Stack
✉
Cloudflare Email Routing
⏱
Cron Triggers (1 min + 12 hr)
Deployed entirely on Cloudflare’s edge—no servers to manage, no databases to provision, no infrastructure bill beyond the Cloudflare Workers free tier. External APIs are all opt-in per capability: OpenRouter for reports, YouTube Data API (free quota) and twitterapi.io for their respective crawlers—each platform simply stays dormant until its key is configured.