
Epitalk — Real-time IRC-style Chat Application with Mercure and SSE
February 2023
Real-time chat application inspired by the IRC protocol, enabling discussions in public or private channels directly from the browser, with instant updates via Mercure and Server-Sent Events.

Project overview
Discover the interface and main features


Project description
Contexte
Epitalk is a chat application inspired by classic IRC server behavior, allowing users to engage in real-time discussions within public channels or via private messages.
The project was developed as part of an academic assignment at Epitech, with the goal of designing a complete real-time messaging application accessible directly from a web browser.
Rather than using WebSockets as in most modern chat applications, the project leverages Mercure and Server-Sent Events (SSE) to explore an alternative approach for handling real-time communications between server and clients.
The application is fully functional and publicly accessible: users can simply choose a username and immediately join the chat.
Problème
Building a real-time messaging application presents several technical challenges:
- synchronizing messages across multiple users and devices
- managing the creation and administration of discussion channels
- maintaining the state of connected users
- transmitting events without page reloads.
Traditional solutions typically rely on WebSockets, but alternative architectures exist for handling real-time data streams.
The project’s objective was to design a modern chat application while experimenting with an architecture based on Mercure and Server-Sent Events.
Solution
Epitalk is built on a real-time architecture combining an AdonisJS backend and the Mercure protocol to broadcast events to clients.
Clients connect to an SSE stream to receive instant updates from the server: new messages, user arrivals, channel creation, or status changes.
The frontend interface is developed with Vue 3 and TypeScript, using Pinia for state management, delivering a smooth experience akin to modern chat applications.
Users can simply enter a username to join the server and start chatting immediately.
Fonctionnalités principales
- instant connection to the chat via username
- public discussion channels (channels)
- private messaging between users
- creation and deletion of channels
- list of connected users in a channel
- classic IRC commands (/join, /list, /users, /nick, /create, /delete, /msg, /leave)
- integrated bot to handle commands
- real-time updates for messages and events
- online user detection
- responsive interface compatible with mobile and desktop.
Résultats
Epitalk demonstrates the implementation of a complete real-time chat application using an architecture based on Mercure and Server-Sent Events.
The project highlights:
- real-time event handling on client and server sides
- instant data synchronization across multiple users
- the design of a modern chat interface with Vue.js.
It also serves as a demonstration of an alternative architecture to WebSockets for applications requiring real-time updates.
Have a similar project? Let's talk
Looking for a freelance developer to bring your idea to life? Let's discuss your web, mobile or software project together.
Similar projects

ApartEasy — Centralize and share your real estate listings
2023-05-22Collaborative web application to centralize and organize real estate listings. Compare properties, share your favorites and estimate travel times with an interactive map.

EpiTrip — Natural language travel planning with AI
2023-01-10Travel planning assistant using NLP to understand natural language requests, extract cities and compute the optimal route from SNCF data with display on an interactive map.

Primea RP — Official GTA 5 RolePlay server website
2022-04-24Official website for the French GTA 5 RolePlay FiveM server Primea RP: server presentation, rules, guides and Discord access to join the roleplay experience.