Group Chat Butler with Chrome Extension and Telegram Bot

A private GitHub repository was shared with the following emails, in accordance with the hackathon rules: viktor@serverpod.dev, alexander@serverpod.dev, and isak@serverpod.dev.


We have AI assistants for meetings and video calls, but for group chats we’re still doing it manually. Why is the messiest place we communicate the one place with no help?

You’re probably part of a lot of group chats, and so am I. They’re where plans get made, questions get answered, and decisions accidentally “happen” between memes and voice notes. The problem is, group chats are great at conversation and terrible at follow-through. The important bits get buried, the same questions come up again, and someone always ends up scrolling back like a detective just to figure out what we decided and what’s next.

Group Chat Butler was born from this frustration. It is a comprehensive chat analysis platform that transforms chaotic conversations into structured action items using AI.

Beyond solving a real-world problem, this project serves as a demonstration of a full-stack Dart ecosystem. It pushes the boundaries of Serverpod, proving that Dart is ready for complex, production-grade web applications.


🏗 The Full-Stack Ecosystem

Group Chat Butler orchestrates a multi-platform environment where every component speaks Dart:

  1. Core Web App (Flutter): A responsive web app with complex state management (Riverpod) and routing (GoRouter).
  2. The Backend (Serverpod): The central hub handling AI orchestration, user sessions, and business logic on Serverpod Cloud.
  3. Telegram Bot Integration: A custom webhook handler that processes real-time message streams directly into the Serverpod backend.
  4. Chrome Extension: A custom-built companion tool that scrapes DOM data from third-party sites (Slack, Discord) and securely bridges it to the main app.

🔧 Technical Complexity & Highlights

💳 End-to-End Payments (Stripe)

The application includes a fully implemented Stripe subscription flow via Serverpod.

  • Secure Webhooks: Serverpod endpoints verify and process Stripe webhooks to handle subscription updates, cancellations, and renewals in real-time.
  • State Sync: The user's premium status is synchronized instantly across the app session.

🤖 Advanced Serverpod Features

  • Custom Webhooks: Beyond standard API calls, we built raw HTTP controllers to handle incoming Telegram updates and external triggers.
  • Cloud Deployment: Fully dockerized and deployed to Serverpod Cloud, managing secrets, database migrations, and production environments.
  • Transactional Email: Integrated Resend API for reliable email verification and user communication flows.

🧩 The Data Pipeline

Parsing chat logs requires a robust pipeline:

  1. Ingestion: Supports diverse inputs—ZIP files (client-side parsing), real-time webhooks, and browser messages.
  2. Normalization: Regex pre-processing cleans noise before it hits the expensive AI layer.
  3. AI Orchestration: Direct integration with Google Gemini API, managing context windows and enforcing strictly typed JSON output that maps 1:1 to Serverpod models.

✅ Quality Assurance & Validation

Production stability is backed by rigorous testing:

  • Automated Tests: Server-side unit tests for endpoint logic/DB integrity and client-side widget tests for dashboard rendering.
  • Manual End-to-End Validation: Critical flows have been verified in the live environment:
    • Payments: Full Stripe subscription lifecycle tested end-to-end.
    • Integrations: Chrome Extension verified across all supported platforms (WhatsApp, Slack, Discord, Telegram Web).
    • Ingestion: Successfully validated Telegram Bot webhooks and manual ZIP uploads.

📱 Adaptive & Responsive UI

The application is built on a single unified Flutter codebase that adapts intelligently to any screen size:

  • Desktop: Full-width dashboards, side-by-side calendar views, and multi-column data grids for power users.
  • Mobile: Optimized touch interfaces, bottom sheets, and stacked layouts ensure the full feature set is accessible on the go.

🔒 Privacy by Design

Handling sensitive chat data requires a trust-first architecture. We implemented strict data handling protocols:

  • Ephemeral Processing: Raw chat logs are processed purely in-memory during the AI analysis phase and are never persisted to the database. Only the structured results (tasks, summaries) are stored.
  • Explicit Control: Analysis is only triggered by explicit user actions (e.g., /analyze command or file upload). There is no passive background surveillance.
  • Row-Level Security: Serverpod's scope management ensures users have strictly isolated access to their own data.

🎯 Implementation Standard

Group Chat Butler functions as a complete SaaS solution. It validates how Serverpod handles the complex requirements of modern web applications—payments, third-party integrations, background jobs, and real-time state—all structured within a unified, type-safe Dart codebase.


Acknowledgements:

  • Serverpod for the backend, built with Dart
  • Gemini API for group chat analysis
  • Resend API for email authentication and confirmation
  • DiceBear API for random avatar generation
  • Telegram Bot API for fetching Telegram messages
  • Stripe API for subscriptions

Built With

Share this project:

Updates