UVCB (Universal Virtual Chat Bridge) is a universal chat app bridge for connecting conversations across a wide range of messaging platforms—both popular and niche. It supports not just text messaging but also voice and video communication, allowing seamless cross-platform interoperability. The backend and bot support is written in Golang (working on VRc Integration soon).
These integrations are prioritized for the MVP release:
- Mumble - Support for low-latency voice relays and messaging via Murmur API.
- IRC - Basic text relay and bot functionality using IRC protocol.
- VRChat - Bridge via Open Sound Control (OSC) messaging or compatible interfaces.
- Discord - Two-way message sync via official bot API.
- Matrix - Federated room bridging and message conversion.
- QQ - Integration via third-party wrappers like
go-cqhttp. - XMPP - Legacy chat protocol bridging using standard XMPP libraries.
These are considered for future versions based on demand and feasibility:
- Telegram - Bot API and/or userbot bridge.
- Slack, Signal, WhatsApp - TBD based on demand.
| Layer | Technology |
|---|---|
| Backend | Golang |
| Deployment | Terraform (with TypeScript automation) |
| Frontend | Nuxt + Vue.js |
- Kubernetes (Preferred)
- Docker Compose
- Bare metal or cloud VM support (via Ansible/Terraform)
uvcb/
├── cmd/ # Entry points for different services
├── internal/ # Core logic & adapters
│ ├── bridge/ # Message bridge implementations per platform
│ ├── core/ # Message queue, normalization, routing
│ └── config/ # Config loading & schema
├── web/ # Nuxt frontend (status/dashboard)
├── deployments/ # Terraform & deployment manifests
│ ├── k8s/
│ └── compose/
├── scripts/ # CI/CD & helper scripts (TS)
└── README.md
- Initialize Monorepo Structure
-
go mod init uvcb - Set up Nuxt app in
/web
-
- Define Message Format Standard
- Common normalized message object (sender, text, timestamp, metadata)
- Implement Core Router
- Route messages between services using channels or a pubsub interface
- Implement Bridges
- Discord (via bot API)
- IRC (via
goircor similar) - Matrix (via
gomatrix) - Mumble (via gRPC or Murmur ICE API)
- XMPP (via
gosrc/xmpp) - QQ (via a wrapper or bridge like
go-cqhttp) - VRChat (OSC or overlay API)
- Bridge Lifecycle Management
- Auto-reconnect, health checks, error queues
- Setup Nuxt + Vue UI
- Display online status, message logs, and bridge statuses
- Manual message relay tool (for admin use)
- Create Terraform Scripts
- Kubernetes manifests for all components
- TS-driven deploy flows
- CI/CD
- GitHub Actions for automated build/test/deploy
- Integrate Logging (Zap/Slog)
- Add Prometheus metrics for bridge health
- Grafana dashboards
MIT License (or similar open-source license to be chosen)
- Contributions are welcome.
- Each bridge should live in its own package and implement a shared interface.
Project by Edji-Ideas LLC. Maintained by Jacob Haflett.
Join us as we unify the fragmented world of messaging!