Features

Everything Waddles ships with today.

Multi-Platform Community Engagement

Twitch, Discord, Slack, YouTube Live, Kick, Microsoft Teams, Mattermost, and Google Chat from one deployment.

  • Trigger services receive platform events: trigger-discord (persistent WebSocket bot), trigger-streaming (Twitch IRC + YouTube + Kick pollers), and trigger-webhooks (Slack + Teams + Mattermost + Google Chat HTTP).
  • All inbound webhooks are verified with HMAC-SHA256 or the platformโ€™s native signing scheme (e.g. Discord Ed25519) before processing; unsigned or invalid requests are rejected with 401.
  • A single Router Module is the command-processing and event gateway every platform funnels through, so feature modules are written once and work everywhere.
  • Collector/trigger replicas coordinate automatically via the routerโ€™s coordination API, splitting ownership of servers/channels across instances for horizontal scale.

AI-Powered Bot Interactions

Intelligent, context-aware chat responses via Ollama or WaddleAI.

  • The AI Interaction module abstracts provider choice behind one REST interface โ€” switch between self-hosted Ollama and the hosted WaddleAI proxy (routing to OpenAI, Claude, MCP, and other providers) without code changes.
  • Responds to greetings, question triggers (default "?"), and configurable platform events (subscription, follow, donation, cheer, raid, boost).
  • Redis-backed response caching, continuous provider health checking with failover, and per-community hot-swappable model configuration.
  • Exposes an OpenAI-compatible /api/v1/ai/chat/completions endpoint for direct integration outside the router flow.

Loyalty, Minigames & Giveaways

Virtual currency, slots/coinflip/roulette, PvP duels, and reputation-weighted giveaways.

  • One module covers currency, giveaways, minigames, and duels โ€” earn, spend, and transfer per-community balances, with automatic earning from chat activity, watch time, follows, and subscription tiers.
  • Giveaways support reputation-weighted odds when the Reputation service is configured, favoring higher-standing community members.
  • A gear/cosmetics shop lets members buy, equip, and unequip items that grant stat bonuses, plus leaderboards ranked by balance, lifetime earned, or wins.
  • Every currency transaction is audit-logged for compliance; available on Twitch, Discord, Slack, and Kick.

Visual Workflow Automation

No-code, DAG-based automation with event triggers, conditions, loops, and cross-platform actions.

  • Workflows are built as a Directed Acyclic Graph of nodes โ€” trigger_command, action_chat_message, action_delay, condition_if, loop_foreach, data_transform, webhook and module-call nodes โ€” validated before execution.
  • An expression engine handles dynamic data flow and variable interpolation between nodes; cron-expression scheduling supplements event triggers.
  • Workflows call other Waddles modules over gRPC and REST, with full execution history retained for auditing and debugging.
  • Licensing: 1 workflow per community on the free/open-source tier, unlimited on Premium โ€” enforced server-side on every workflow-creating request.

Reputation, Identity & Security Core

A FICO-style 300โ€“850 reputation score plus cross-platform identity linking and real-time spam/content enforcement.

  • Behavior โ€” chat messages, subscriptions, raids, cheers, and moderation events โ€” is scored 300โ€“850 across five tiers (Exceptional, Very Good, Good, Fair, Poor), tracked per-community and globally, with configurable auto-ban and at-risk thresholds; Premium communities can override default event weights.
  • Identity Core bridges platform-specific accounts (Twitch, Discord, YouTube, and others) to one logical hub user, so every module resolves "who is this user" the same way regardless of platform, with OAuth2 authentication and API key issuance for service-to-service auth.
  • Security Core adds real-time spam detection with Redis-backed rate limiting, regex/blocked-word content filtering, and a warning system with automatic escalation, synchronized across every connected platform.
  • Reputation scoring feeds the Loyalty moduleโ€™s giveaway odds and coordinates with Security Core for moderation actions; every warning, escalation, and ban is audit-logged. Exposed over both REST and gRPC.

Multi-Tenant Community Management

Community-isolated data with role-based access control per tenant.

  • Each Waddles installation hosts multiple independent communities, each with its own members, roles, settings, and connected platforms, keyed by community_id across every feature module.
  • Role-based access control follows a resource:action permission format (e.g. community:moderate, module:install), with a default role hierarchy of admin, community_owner, moderator, and user.
  • Every request carries a community_id (or equivalent tenant context) so queries are scoped and cross-community access is prevented by default.
  • Community platform connections store credentials per platform, isolated from other communities on the same installation.

Analytics & Bot Detection

Community health scoring, engagement analytics, and confidence-scored bot detection.

  • Free tier: basic statistics (chatters, stream time, messages per user), 7-day and 30-day active user counts, and real-time activity ingestion from every platform module.
  • Premium: composite A+ through F community health scoring, bad-actor detection and flagging, cross-session user-journey tracking, retention cohort analysis, and engagement funnel analytics.
  • Bot-detection scoring combines four weighted signals into a 0โ€“100 score, cached for 24 hours: Bad Actor Score, Reputation Score, Security Score, and AI Behavioral Score โ€” moderators can review and override flags.
  • Runs as a real-time ingestion pipeline and query engine, backed by PostgreSQL with optional Redis caching.

Hub Admin Portal

A React 18 admin portal for configuring, monitoring, and managing every connected community.

  • Pairs a Node.js/Express backend with a React 18 + Vite + TailwindCSS frontend, giving admins one place to manage communities, users, modules, and platform connections.
  • Broadcast/announcement system pushes messages to every connected platform at once; module discovery, registration, and per-community enable/disable for everything except core modules.
  • Real-time updates via WebSocket (Socket.io), a public community directory, Personal/Community Access Tokens for API access, and WebAuthn passkey login alongside CAPTCHA-protected registration.
  • OAuth credentials are managed at the layer that owns them โ€” bot credentials by superadmins, community OAuth by community admins, user OAuth by the end user โ€” each route enforcing ownership server-side. Security middleware includes Helmet, CSRF protection, rate limiting, and XSS filtering.

Kubernetes & Helm Deployment

A 22-container microservices architecture with per-service database accounts.

  • Trigger, Router, Interactive, Core, Action, and Admin service groups run as independently deployable containers, each scoped to its own database account, sitting on PostgreSQL, Redis, MinIO, and Qdrant infrastructure.
  • Kustomize is the canonical tool for local/alpha iteration; Helm is canonical for beta and production, with templated values files, upgrade/rollback history, and atomic releases.
  • Collector and trigger modules scale horizontally โ€” replicas coordinate via the routerโ€™s coordination API to split ownership of servers and channels automatically.
  • Every service exposes Prometheus-format metrics at /metrics plus health and readiness endpoints for cluster-level monitoring and autoscaling.

SDK & Mobile Apps

Build custom modules with the module template, and manage communities from native iOS and Android apps.

  • New modules follow the same structure every shipped module uses โ€” a Quart REST app, environment-driven config, Pydantic validation, and a PyDAL-backed per-module database account โ€” registering with the Router to receive routed events.
  • Native apps ship for Android (Kotlin, Jetpack Compose, Android 8.0+) and iOS (Swift, SwiftUI, iOS 16+), both using MVVM with the same Hub API the web portal uses.
  • Mobile features: JWT-based auth with refresh, community management, real-time WebSocket chat with typing indicators and paginated history, and a member directory.
  • Rate limits protect the Hub API: 100 REST requests/minute, 30 WebSocket messages/minute, 10 history requests/minute per client.

Logging, Metrics & Compliance Audit

Structured AAA logging and Prometheus metrics across every container.

  • Every service logs Authentication, Authorization, and Audit (AAA) events in a consistent structured format, to stdout/stderr, rotated local files, and optional syslog.
  • Suggested retention: 2 years for AUTH/AUTHZ security logs (immutable storage recommended), 7 years for audit logs in compliance-sensitive deployments, 90 days for system logs.
  • Sensitive fields (passwords, tokens, API keys, secrets) are redacted before any log line is written.
  • Every service exposes Prometheus-format metrics at /metrics; example Alertmanager rules ship for authentication-failure spikes and database connectivity loss.

Customer Relations (CRM) โ€” Roadmap

Planned: unified customer companies, contacts, public intake forms, and support tickets. Not yet available.

  • Planned: CRM company and contact records (companies + contacts) so public-facing teams can track who they are talking to across community and support channels.
  • Planned: public, anonymous intake forms with CAPTCHA (Turnstile/reCAPTCHA) for community and customer requests, addressed by a globally unique slug so a public form URL carries no tenant information.
  • Planned: customer email intake โ€” inbound IMAP/Gmail polling threaded into tickets by RFC 2822 message-id, with outbound reply sending.
  • Planned: customer-facing support tickets with SLA tracking โ€” priority, first-response/resolution timers, and canned responses.
  • This capability is in the draft-specification stage โ€” a handoff spec inherited from an internal helpdesk module โ€” and is not yet implemented anywhere in the Waddles codebase. Treat every item above as a roadmap intent, not a shipped feature; no date is committed.

Full technical documentation โ†’