Project Overview
EdgeChat is an edge-hosted chat system built on the Cloudflare ecosystem. It is suitable for internal team communication, private communities, and lightweight in-app messaging.
Its goals are simple: low setup effort, low cost, and easy deployment. Public registration is disabled by default; administrators control access by inviting users or creating accounts manually.

Core Features
- Group chats, including public groups and custom private groups
- One-to-one direct messages
- Server-side encryption for newly written messages and attachments, without bulk migration of historical data
- No message-content search or full-conversation inspection in the admin panel
- Administrators can permanently ban users or set temporary bans in days, hours, or minutes; expired bans lift automatically without scheduled jobs
- File uploads, avatars, and real-time messaging
- Administrator-configured bidirectional synchronization of text, Unicode Emoji, and files up to 16 MiB between public or private groups and Telegram group chats
Site Color Palette
Starting with 2.17.0, open Admin → Site appearance → Site color palette to apply Cream Sakura with one click or restore the Classic palette. The selection is saved immediately without saving name or icon drafts. Super-administrator or site-appearance update permission is required.
The palette covers login, registration, chat, personal settings and administration. The current window updates immediately; other visitors see the change after refreshing. Personal backgrounds and semantic warning/success colors are preserved. This is a light palette, not dark mode. Demo changes live only in the current page's memory and reset on reload, without affecting production.
Keep using the existing GitHub Actions deployment. No migration, environment variable or Secret is required. Existing sites retain the classic palette until an administrator switches it.
Since 2.17.1, Cream Sakura blends pale pink with mist blue for a lighter, dreamy appearance. Primary buttons pair pastel gradients with readable dark labels.
Technology Stack
- Frontend: Vue 3 + Vue Router + Vite
- Backend: Cloudflare Workers + Hono
- Data: Cloudflare D1
- Sessions: Cloudflare KV
- Files: Cloudflare R2
- Real-time communication: Durable Objects + WebSocket
Browse by Task
First Steps
- Getting Started: prepare Cloudflare and GitHub, then complete your first deployment
- Frontend-only Demo: explore the main chat and administration flows without a backend
Deploy and Update
- Cloudflare API Token: create deployment credentials
- GitHub Actions Deployment: run and inspect the workflow
- Update an Existing Site: sync and deploy manually
- Automatic Updates: enable twice-daily upstream syncing
- Cloudflare Resources and Usage: inspect resources and usage
Site Configuration
- Site Configuration: retention, upload limits, and other settings outside the admin panel
- Attachments and Storage: enable R2 and change file limits
- Voice Calls and TURN: configure relaying and test calls
Admin and Maintenance
- Users and Admin Permissions: accounts, groups, bans, and login records
- Installation and Version Checks: inspect status and export reports
- Administrator Setup and Recovery: first sign-in and super-admin recovery
- D1 Database Migrations: back up, plan, apply, and verify
- Encryption Keys: rotate and retain keys
- Stealth Mode: enable entry authentication or restore access
Integrations
- Telegram Bridge: connect a Telegram group chat
- Instance Group Bridge: synchronize group messages between two EdgeChat instances
Clients and Development
- Android Client: install, build, and release the current Capacitor client
- Project Structure: understand the source tree, core modules, and development entry points