Skip to content
@Gryt-chat

Gryt Chat

Gryt is an open source VoIP and instant messaging platform built using Javascript

Logo
Gryt Chat

Gryt is an open-source voice and text chat platform that values privacy and user control of data. With Gryt, users can host their own servers, giving them full control over their conversations and data. Gryt is a secure, private communication platform that empowers users to communicate freely while protecting their privacy.

AGPL-3.0 License Stars Pull Requests Issues

Website · Live App · Documentation · Source Code · Report a Bug · Request a Feature


Caution

Early Development Stage — This project is experimental and under active development. Expect breaking changes.


Why Gryt?

Most communication platforms today are owned by corporations that monetize your conversations, lock you into their ecosystem, and give you zero control over where your data lives. Gryt exists to change that.

  • Self-hostable — Run your own server. Your data stays on your hardware.
  • Open source — Every line is auditable. No telemetry, no tracking, no surprises.
  • Full-featured — Crystal-clear voice chat, persistent text messaging, file sharing — all in one platform.
  • Modern stack — Built with TypeScript, React, Go, and WebRTC for real-time performance.

What's Inside

Core Platformgryt

A monorepo using git submodules containing everything you need:

Component Repo Built With
Web Client packages/client React · TypeScript · Vite · Electron
Signaling Server packages/server Node.js · Express · Socket.IO
SFU (Media Server) packages/sfu Go · Pion WebRTC
Auth packages/auth Keycloak · OIDC
Docs packages/docs Next.js · Fumadocs
Landing Page packages/site React · Vite

Deployment Options

Method Best For
Docker Compose Quick self-hosting
Helm Chart Kubernetes clusters
Cloudflare Tunnel Tunneled hosting
Dev Scripts Local development

Get started in one command:

git clone --recurse-submodules https://github.com/Gryt-chat/gryt.git
cd gryt && ./ops/start_dev.sh

Pre-built Docker images are published to GitHub Container Registry:

Image Purpose
ghcr.io/gryt-chat/server Signaling, chat, file uploads
ghcr.io/gryt-chat/sfu WebRTC media forwarding
ghcr.io/gryt-chat/client Web UI (browser access)

Features

Voice Chat

WebRTC-powered real-time audio with noise suppression, echo cancellation, voice activity detection, and a configurable audio pipeline.

Text & Files

Persistent messaging backed by ScyllaDB with file uploads, image thumbnails, and S3-compatible object storage.

Multi-Server

Connect to multiple self-hosted servers simultaneously and switch between them seamlessly from a single client.

Privacy First

Self-host everything. Your messages, files, and voice data never touch a third-party server unless you choose to.

Desktop & Web

Clean, accessible interface built with Radix UI. Dark and light themes, responsive layout, and an Electron desktop app with auto-updates for Linux, macOS, and Windows.

Easy Deployment

Docker Compose for quick setups, Helm charts for Kubernetes, Cloudflare Tunnels for easy access, and comprehensive docs to guide you through production deployment.


Architecture

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   Web Client    │    │  Gryt Server    │    │   SFU Server    │
│   (React/TS)    │◄──►│ (Node.js/Express)│◄──►│     (Go)        │
│                 │    │                 │    │                 │
│ • Voice UI      │    │ • Signaling     │    │ • Media Relay   │
│ • Audio Proc.   │    │ • Persistence   │    │ • WebRTC        │
│ • Multi-Server  │    │ • File Uploads  │    │ • Track Mgmt    │
└─────────────────┘    └─────────────────┘    └─────────────────┘
         │                      │                      │
         │              ┌───────┴───────┐              │
         │              │   ScyllaDB    │              │
         │              │   + MinIO/S3  │              │
         │              └───────────────┘              │
         │                                             │
         └──────────── WebRTC Media (UDP) ─────────────┘

Contributing

We welcome contributions of all kinds — code, documentation, bug reports, and feature ideas.

  1. Fork the repo and create your branch from main
  2. Make your changes and ensure tests pass
  3. Open a pull request with a clear description of what you've done

Check out the contributing guide, browse the issue tracker for open issues, or create a feature request if you have an idea.


Made with care by the Gryt community · Licensed under AGPL-3.0

Pinned Loading

  1. gryt gryt Public

    Monorepo for the Gryt voice chat platform — a self-hostable, WebRTC-based voice communication app with a desktop client, signaling server, SFU, and Keycloak auth.

    Shell 22

  2. client client Public

    Web and desktop voice chat client built with React, Vite, and Electron. Features noise suppression, voice activity detection, multi-server support, and a Radix UI interface.

    TypeScript

  3. sfu sfu Public

    Lightweight Selective Forwarding Unit written in Go using Pion WebRTC. Relays audio streams between participants without transcoding for low-latency group voice chat.

    Go

  4. server server Public

    WebRTC signaling server for Gryt. Handles room management, user presence, rate limiting, file uploads, and message persistence with ScyllaDB — powered by Socket.IO and Express.

    TypeScript

  5. auth auth Public

    Centralized Keycloak authentication service for the Gryt platform. Includes custom themes, HAProxy config, bootstrap scripts, and Postgres backup tooling. Open-sourced for transparency.

    CSS

  6. docs docs Public

    Documentation site for the Gryt voice chat platform. Built with Next.js and Fumadocs, featuring MDX content, search, and custom branding.

    MDX

Repositories

Showing 10 of 17 repositories

Top languages

Loading…

Most used topics

Loading…