A modern discord-clone for self-hosting. Because fuck anti-privacy laws.
  • JavaScript 96.6%
  • TypeScript 2%
  • CSS 0.4%
  • Java 0.4%
  • Python 0.3%
  • Other 0.2%
Find a file
2026-04-10 11:23:18 +02:00
.claude feat: switched PeerJS to Mediasoup SFU on servers 2026-03-10 22:55:42 +01:00
.github/workflows feat: begin implementing unit tests 2025-11-01 16:51:29 +01:00
android chore: update to build android on linux 2026-03-18 16:25:57 +01:00
build feat: desktop app 2025-08-11 23:51:35 +02:00
docs chore: update documentation 2026-03-05 16:08:14 +01:00
examples chore: bump SDK version 2026-04-04 20:24:10 +02:00
packages feat: bot rate limit 2026-04-04 20:53:03 +02:00
public feat: per-app audio windows 2026-03-31 10:00:47 +02:00
scripts feat: new emoji picker 2026-02-20 16:56:37 +01:00
server del: redundant vary cors 2026-04-07 10:38:19 +02:00
src fix: initial DM conversation shows self 2026-04-10 11:23:18 +02:00
tests feat: bot system ready for production 2026-02-10 13:20:39 +01:00
.dockerignore fix: mentioning bot 2026-03-06 18:37:54 +01:00
.gitignore feat: PWA push notifications 2026-03-02 11:17:28 +01:00
babel.config.js feat: begin implementing unit tests 2025-11-01 16:51:29 +01:00
build-docker.sh feat: better desktop notification content for other channel types 2025-11-11 01:44:20 +01:00
capacitor.config.ts fix: mobile scrolling and back gesture 2026-02-26 20:37:52 +01:00
CLAUDE.md feat: migration to postgresql 2025-09-29 15:23:47 +02:00
docker-compose.yml chore: update postgres volume 2026-04-03 15:49:21 +02:00
docker-entrypoint.sh fix: attempt to fix docker image 2025-09-22 00:39:26 +02:00
Dockerfile fix: docker build for mediasoup 2026-03-11 10:37:34 +01:00
index.html feat: display user profile popup to the side of the memberbar 2026-03-05 10:41:42 +01:00
jest.config.js feat: begin implementing unit tests 2025-11-01 16:51:29 +01:00
jest.server.config.js feat: continuing tests implementation, fixing pools 2025-11-03 10:34:02 +01:00
LICENSE feat: readme 2025-08-26 12:31:17 +02:00
package-lock.json fix: platform dependencies 2026-03-31 10:03:54 +02:00
package.json fix: platform dependencies 2026-03-31 10:03:54 +02:00
postcss.config.js Initial commit 2025-08-06 15:54:21 +02:00
README.md chore: bump version 2026-03-21 13:56:37 +01:00
tailwind.config.js feat: more appearance customization 2026-02-20 11:24:23 +01:00
todo.md fix: noise supprssion toggle in sidebar 2026-03-26 17:38:11 +01:00
vite.config.js chore: remove amadeus 2026-03-26 16:48:26 +01:00
vite.config.js.docker chore: remove amadeus 2026-03-26 16:48:26 +01:00

Chirp

Chirp Logo

A privacy-focused, self-hostable social platform. Discord-like functionality with full control over your data.

License: MIT Version


🐦 Why Chirp?

In an era where digital privacy is constantly under threat and our personal conversations are treated as a commodity, we believe you have a fundamental right to private communication. Chirp was born out of frustration with platforms that monitor, monetize, and censor your data without your consent.

Chirp is built on a simple idea: your data belongs to you.

  • 🔒 Self-Hosted First: Chirp is designed to be run on your own server. You control the hardware, the database, and the entire ecosystem. There are no third-party servers storing your messages.
  • 🚫 No Message Scanning: We will never scan your messages. The code is open source—you can verify this yourself.
  • 📢 Open Source & Transparent: Trust should be earned. Chirp's entire codebase is available for you to inspect, modify, and contribute to.

Features

Real-time Communication

  • Servers & Channels - Create communities with text, media, forum, and collaborative channels
  • Threads - Organized conversations that branch from any message
  • Direct & Group Messages - Private conversations with rich features
  • Real-time Updates - Instant messaging with WebSockets, presence, and typing indicators
  • Friend System - Comprehensive friend management with online status and blocking

Rich Content & Media

  • Enhanced Media - File attachments, GIF search, custom emojis, and stickers
  • Smart Embeds - Rich link previews with embedded YouTube playback
  • Interactive Polls - Live polls with real-time results
  • Media Channels - Browse images, videos, and audio with thumbnails and comments
  • Collaborative Workspaces - Shared notes, documents, and wiki functionality
  • Events & Calendar - Server events with reminders and scheduling

Personalization & Profiles

  • Dual Profile System - Global profile + per-server profiles
  • Rich Customization - Avatars, banners, bios, custom sounds, and themes
  • Profile Badges - Collectible status and achievement badges
  • Advanced Cropping - Fine-tune your profile images with intuitive tools
  • Date/Time Formatting - Personalized display preferences

Moderation & Security

  • Fine-Grained Permissions - Role-based system with category and channel overrides
  • Moderation Tools - Comprehensive admin logs, kick/ban functionality
  • Muting Controls - Granular muting for DMs, channels, and servers
  • E2EE Channels - End-to-end encryption for sensitive conversations
  • Two-Factor Auth - Optional 2FA for account security
  • Account Control - Full deletion options (anonymize or complete nuke)

Cross-Platform Experience

  • Desktop App - Native Windows and Linux Electron app
  • System Tray - Background operation with notification badges
  • Auto-Updates - Seamless desktop app updates
  • Rich Notifications - Clickable notifications that go directly to conversations
  • VR Integration - XSOverlay support for in-VR notifications

🛠️ Tech Stack

Frontend: React 19, Vite, Tailwind CSS, Zustand, TanStack Query Backend: Node.js, Express, Socket.IO Database: PostgreSQL with Knex.js migrations Desktop: Electron with auto-updater support

🚀 Quick Start

See docusaurus documentation

🏗️ Architecture

Frontend: React 19 application with Vite, organized by feature components with Zustand for state management and TanStack Query for server state.

Backend: Node.js/Express server with Socket.IO for real-time communication, handling REST API endpoints and WebSocket connections.

Database: PostgreSQL with comprehensive migration system using Knex.js, supporting users, servers, channels, messages, roles, permissions, and more.

Real-time: Socket.IO handles presence, typing indicators, and instant message delivery with auto-reconnection and heartbeat system.

📚 Documentation

Complete documentation is available at docs/ with guides for:

  • Getting Started - Installation and quick setup
  • Self-Hosting - Production deployment and configuration
  • User Guide - Features and how to use them
  • Admin Guide - Server management and moderation
  • Developer Guide - Architecture, API, and contributing

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❤️ for privacy-respecting communities