Overview
Discover what makes Convos powerful
**Convos** is a browser‑first, self‑hosted IRC client that bundles a lightweight bouncer with a modern UI. From a developer’s perspective, it is a full‑stack application that leverages Perl on the server side and Svelte on the client, exposing a clean WebSocket API for real‑time communication. The core idea is to keep users online even when the browser tab is closed, by maintaining persistent IRC connections on the server and replaying messages to reconnecting clients. This architecture eliminates the need for external bouncers such as ZNC, simplifying deployment while still offering a familiar IRC experience.
Backend
Frontend
Data Persistence
Containerization
Overview
Convos is a browser‑first, self‑hosted IRC client that bundles a lightweight bouncer with a modern UI. From a developer’s perspective, it is a full‑stack application that leverages Perl on the server side and Svelte on the client, exposing a clean WebSocket API for real‑time communication. The core idea is to keep users online even when the browser tab is closed, by maintaining persistent IRC connections on the server and replaying messages to reconnecting clients. This architecture eliminates the need for external bouncers such as ZNC, simplifying deployment while still offering a familiar IRC experience.
Technical Stack
- Backend – Written in Perl 5.38+ using the Mojolicious web framework, which natively supports WebSockets and asynchronous I/O. Mojolicious’ event loop (POE or AnyEvent) handles concurrent IRC connections, message buffering, and user session management.
- Frontend – Built with Svelte 5, a compile‑time framework that produces highly efficient JavaScript bundles. The UI is responsive, supports themes, rich media rendering (emojis, images), and integrates a WebRTC layer for video chat via the browser’s native APIs.
- Data Persistence – Uses a simple SQLite or PostgreSQL database for user accounts, channel subscriptions, and archived logs. File uploads (for media in chats) are stored on the local filesystem under a configurable data directory.
- Containerization – Official Docker images are published to GitHub Container Registry. The container exposes port 3000 (mapped to 8080 by default) and mounts a persistent
/datavolume, making it trivial to run Convos on any OCI‑compatible platform.
Core Capabilities & APIs
- WebSocket API – Clients connect to
/wsand exchange JSON messages that mirror IRC commands (PRIVMSG,JOIN,NICK, etc.). The server translates these into IRC protocol packets and vice versa, enabling seamless integration with any IRC network. - Bouncer Functionality – The server keeps a persistent connection to the IRC server, buffering messages for offline clients. When a user reconnects, Convos replays missed messages and restores the session state.
- Video Chat – A peer‑to‑peer WebRTC implementation allows one‑on‑one or group video calls directly from the chat interface. The signaling server runs over the same WebSocket connection, avoiding additional ports.
- Extensibility – Convos exposes a plugin API in Perl. Developers can write modules that hook into events (e.g., message received, user joined) and augment behavior. The front‑end can also consume custom REST endpoints for advanced integrations.
Deployment & Infrastructure
- Self‑Hosting – Requires only Perl, a web server (or the built‑in Mojolicious server), and an IRC network. No external bouncers or reverse proxies are mandatory, though deploying behind Nginx/Traefik is common for TLS termination.
- Scalability – The stateless nature of the web socket connections means multiple Convos instances can run behind a load balancer, sharing session data via a shared database or Redis store. Horizontal scaling is straightforward; the primary bottleneck is IRC server limits.
- Container Support – The Docker image ships with all dependencies pre‑installed. For Kubernetes, the
convos.yamlmanifests can be adapted to use persistent volumes and secrets for configuration.
Integration & Extensibility
- Plugin System – Perl modules can register callbacks for IRC events, allowing developers to add bots, moderation tools, or custom command handlers.
- Webhooks – Convos can emit HTTP POST requests on specific events (e.g., message posted) to external services like Slack, Mattermost, or custom dashboards.
- REST API – Basic endpoints exist for user management and channel listing, enabling programmatic control of Convos from other applications or CI pipelines.
Developer Experience
- Configuration – A single
convos.conffile (YAML/JSON) controls IRC server settings, authentication backends, and feature flags. The CLI (convos daemon,convos build) offers a streamlined workflow for development and release. - Documentation – The project hosts comprehensive docs on its website (
convos.chat/doc/) covering architecture, plugin development, and deployment scenarios. The source code is well‑structured with clear module boundaries. - Community & Support – Active GitHub issues, a dedicated IRC channel (
#convos), and frequent CI builds provide rapid feedback. The license is permissive (MIT), encouraging commercial use without licensing overhead.
Use Cases
- Private Team Communication – Deploy on a company’s intranet to provide an IRC‑based chat with persistent logs and video support.
- Educational Projects – Use as a teaching tool for web sockets, real‑time systems, or Perl web frameworks.
- Open Source Collaboration – Host a self‑managed IRC client for projects that prefer control over third‑party services.
- Hybrid Chat Platforms – Combine Convos with other protocols via plugins to create a unified chat gateway.
Advantages Over Alternatives
- Full Self‑Hosting – No reliance on external services; all data stays within the organization’s control.
- Modern UI with Minimal Overhead – Svelte delivers a fast, lightweight front‑end without the bundle size of larger frameworks.
- Built‑in Bouncer – Eliminates the need for separate bouncers, reducing attack surface and operational complexity.
- Extensible Architecture – Perl plugin hooks
Open SourceReady to get started?
Join the community and start self-hosting Convos today
Related Apps in apis-services
Mastodon
Decentralized, real‑time social networking
Discourse
Open‑source community forum platform with real‑time chat and AI
Rocket.Chat
Secure, open‑source team communication platform
Novu
Unified notification platform for multi‑channel delivery
Mattermost
Secure, self‑hosted team collaboration with chat, voice, and AI
Jitsi Meet
Free, encrypted video conferencing for everyone
Weekly Views
Repository Health
Information
Explore More Apps
EPrints
Open-source digital repository platform for research
Gameyfin
Your personal game library manager
JupyterLab
Interactive notebooks in a modern, extensible interface
Roundcube
Webmail client for modern browsers

Neos
Open-source, developer-friendly CMS with event-sourced content and inline editing
Retrom
Centralized, self-hosted game library for all devices
