Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/connellr023/chatter-reborn

A massively concurrent chat application designed for real-time, one-on-one conversations.
https://github.com/connellr023/chatter-reborn

actor-model concurrent-programming functional-programming gleam mist realtime-chat socket-programming

Last synced: 17 days ago
JSON representation

A massively concurrent chat application designed for real-time, one-on-one conversations.

Awesome Lists containing this project

README

        

#

> A massively concurrent chat application designed for real-time, one-on-one conversations.

![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white)
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
![Erlang](https://img.shields.io/badge/Erlang+Gleam-white.svg?style=for-the-badge&logo=erlang&logoColor=a90533)
![API CI Status](https://img.shields.io/github/actions/workflow/status/connellr023/chatter-reborn/api_ci.yml?style=for-the-badge&logo=erlang)


## Deployment

This demonstration project is deployed **On Render** here


## Overview

This project is a variation of a previous project, **Chatter**, re-implemented in **Gleam**. This version is essentially just the text chat aspect of **Omegle** (which no longer exists). It allows users to speed chat with random strangers in real-time.


## Why Re-Implement in Gleam?

I chose to re-implement this project in **Gleam** for several reasons:

- **Learning Functional Programming**: I wanted to start learning functional programming, and Gleam provides a great opportunity to do so.
- **Type Safety**: Type safety is crucial for me, and Gleam offers strong type guarantees, unlike the dynamically typed **Erlang** and **Elixir**.
- **Familiar Syntax**: As someone who enjoys the **Rust** programming language, I found Gleam’s syntax familiar, which eased my transition into functional programming.
- **Simplicity and Concurrency**: Gleam is simple to pick up and excels at creating concurrent applications.


# Screenshots

![Main Screen](public/main.png)
![Queue Screen](public/queue.png)
![Chat Screen](public/chat.png)





Developed and Tested by Connell Reffo in 2024