Skip to content

EdgeChat

Team chat with groups, DMs, voice notes and a Telegram bridge, deployed to your Cloudflare account via GitHub Actions

EdgeChat web demo with the chat list and the General group, showing an admin notice, an image attachment, a voice message and a mention

EdgeChat gives a team, project or small community its own chat site with public and private groups, direct messages, file sharing and an admin console. Administrators can bridge any group with a Telegram group in both directions. New message bodies and attachments are encrypted at rest on the server.

Groups and direct messages update in real time over WebSockets held by Durable Objects, with paginated history, replies with quote navigation, @ mentions and reply reminders. Members can record voice messages with a waveform and variable-speed playback, share files, and block a contact, which stops direct messages in both directions. Since version 2.11.0, web direct messages also support one-to-one voice calls, peer to peer by default with an optional Cloudflare TURN relay. The Vue interface adapts to desktop and mobile and ships English, Simplified Chinese and Traditional Chinese translations. An Android app is published as an APK in the GitHub releases. Administrators get a dashboard, user management, registration invites, site settings, and permanent or timed bans that lift on their own. The Telegram bridge carries voice messages too. Direct messages are never bridged, but members can link the bot to get alerts for direct messages and mentions while the site is closed. Since version 2.8.0, an administrator can also link a group to a group on another EdgeChat site, after which new text messages sync both ways. Encryption uses AES-256-GCM, and the admin console has no view of message content. The Worker decrypts content after checking session permissions, so the README notes that the Cloudflare runtime and whoever holds the keys must still be trusted. The Deploy Worker workflow in a fork creates or reuses the D1 database, KV namespace and R2 bucket, applies migrations, generates the encryption key as a Worker secret and creates the first admin account. On an account without R2, the deploy still completes with attachments switched off, and running the workflow again after R2 is enabled restores them.

Built for: Teams and communities that want their chat history and member list on infrastructure they control, especially groups that already meet in Telegram.

What you can use it for

  • Give a small team or project its own chat site on a domain you control
  • Bridge an existing Telegram group to a web chat so members can use either one
  • Run a community chat with public groups, registration invites and moderation tools
  • Share voice notes and files inside groups and direct messages
  • Link a group across two EdgeChat sites for shared text discussions

Deploy

  • Manual

    Fork the repository, add CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID, CFCHAT_ADMIN_USERNAME and CFCHAT_ADMIN_PASSWORD as Actions secrets, then run the Deploy Worker workflow. To keep more than 7 days of history, raise MESSAGE_RETENTION_DAYS in wrangler.example.toml before the first run.

The single API token needs edit rights for Workers Scripts, D1, Workers KV Storage and R2. The Telegram bridge also needs a bot token.

What it needs to run

  • D1 databasescfchat-db
  • Durable ObjectsChannelRoom, InstanceBridge, Scheduler, UserInbox
  • KV namespacesSESSIONS
  • R2 bucketscfchat-files

Good to know

The scheduled cleanup deletes messages older than MESSAGE_RETENTION_DAYS, which defaults to 7 days. Encryption is server-side at rest, not end-to-end, and messages stored before encryption was added stay in plaintext. The main README is in Chinese, with English and Japanese versions; the deploy guide's Cloudflare dashboard screenshots show the Chinese interface, and the text gives the English labels. The live demo simulates the backend in the browser and is not a real multi-user room. The Android app has no push service, so new messages may not show up as notifications while it is closed. Young project: the repository was created in April 2026.

Cost on Cloudflare

Likely fits the free plan

D1, KV, cron triggers and SQLite-backed Durable Objects are available on Workers Free. Attachments use R2, which has to be activated on the account and includes 10 GB-month of storage in its free tier.

Source

The estimate is based on Cloudflare’s documented limits and the app’s configuration. What you pay depends on your usage and plan.

Where this comes from

Listing history

  • Oct 3, 2026 · EdgeChat listed
  • Telegram chat where the bot offers Claude models under /models and identifies a dog in an uploaded photo

    Telegram bot that answers private and group chats with OpenAI, Anthropic or Workers AI models, set up in a Mini App

    Deploy
    One-click
    License
    MIT
    GitHub stars
    3.8k stars
    Last commit
  • mail2telegram push notification, Mini App inbox, message reader and iPad split view in Telegram

    Telegram bot that pushes a domain's incoming email to chat, with a Mini App inbox and replies through Resend

    Deploy
    One-click
    License
    MIT
    GitHub stars
    903 stars
    Last commit
  • Kukuroo homepage with an iPhone lock screen showing a "Task W13 finished" push notification

    Self-hosted Web Push for iPhone, iPad and Mac Safari, triggered by one authenticated POST from scripts, cron or CI

    Deploy
    CLI
    License
    MIT
    GitHub stars
    129 stars
    Last commit