Markets have been watching the AI sector with growing unease. While fundamentals remain strong, valuations have stretched…
The most dangerous assumption is that growth will continue indefinitely without a meaningful correction.
Traditional embeds sit where 70% of readers never scroll, load 140KB of JavaScript, and phone home on every request. Sayy fixes the architecture β not the UI.
Markets have been watching the AI sector with growing unease. While fundamentals remain strong, valuations have stretched…
The most dangerous assumption is that growth will continue indefinitely without a meaningful correction.
A single <script> tag. Reads data-site, fetches init. Fingerprint-free. No cookies. No tracking.
GET /embed/boot.js Β· max-age=86400
Returns JSON config: appearance, feature flags, versioned loader URL. Config version bumps on save.
GET /embed/init Β· max-age=60 Β· ETag
Full widget. Version baked into URL β cached indefinitely. Only fetched on first load or config change.
GET /embed/loader.v{hash}.js Β· immutable
Comments attach to highlighted text, not just the page. Readers see exactly what's being discussed.
text_anchorXPath + offset range stored per comment. Survives minor edits via fuzzy matching.highlight_syncHover a comment to highlight the source. Click a highlight to jump to the thread.orphan_handlingIf source text is deleted, comment auto-demotes to page-level with a stale badge.quote_previewAnchored text displayed inline in the comment thread for full context.Starts local. Escalates only when needed. You choose how far the pipeline goes.
tier_1: localRegex patterns, blocklists, rate limiting. Zero external calls. Privacy-first default.tier_2: aiBYOK β your OpenAI or Anthropic key. Only fires for ambiguous scores (20β70).tier_3: offNo filters at all. For platforms that handle moderation externally.quota_fallbackAuto-falls back to Tier 1 on 429 or when monthly AI quota is exhausted.Tier 2 only fires for ambiguous scores. Supports OpenAI gpt-4o-mini and Claude claude-haiku. Full JSON reasoning logged.
gpt-4o-miniOpenAI providerclaude-haikuAnthropic providerquota_fallbackAutomatic Tier 1 on 429ai_reasoningLogged per decisionOne-click Disqus XML import. Maps threads, authors, timestamps, and votes.
disqus_xmlFull export import with thread mapping and author preservation.wxr_importWordPress eXtended RSS. Comments, metadata, and hierarchy intact.dry_runPreview import results before committing. See conflicts upfront.rollbackUndo any import within 24 hours. No data loss, ever.See who's reading. New comments stream in live. Powered by SSE β no WebSocket overhead.
presenceAnonymous reader count per page. Zero auth required.live_commentsNew comments appear instantly via Server-Sent Events.typing_indicatorOptional "someone is writingβ¦" signal. Disable per-site.reconnectAuto-reconnect with exponential backoff on flaky connections.Owner, admin, moderator, commenter. Scoped per-site with granular permissions.
ownerFull access. Billing, API keys, site deletion.adminSite settings, moderation, team management. No billing.moderatorApprove, hide, flag comments. View reports.audit_logEvery action timestamped. Exportable as JSON or CSV.inlineInline
Renders in page flow. ResizeObserver auto-adjusts height. Best for blogs and long-form.
data-mode="inline"floatingFloating
56Γ56px persistent FAB. Expands to 380Γ500px panel. Non-disruptive β always accessible.
data-mode="floating"bottom_barBottom Bar
Full-width sticky bar, collapsed with count. Expands on tap. Ideal for news and mobile.
data-mode="bottom_bar"side_panelSide Panel
Pill FAB with reactions + presence. Slides in as a panel. Most app-like experience.
data-mode="side_panel"Sayy started as a WordPress commenting plugin. The WP integration isn't an afterthought β it's the primary install path. One plugin handles everything: embed injection, admin settings, migration, and spam tier config.
comments_template and injects the Sayy embed. Your theme's comment section is swapped automatically.