smpallen99

smpallen99

Anyone interested in contributing to an open source Phoenix based team chat app, similar to Rocket.Chat? I have a pretty feature rich version thats already being used by our company. I’m going to release the source very soon. Would like help in all areas, especially some redesign of the front end.

I’ll post more details very soon. Let me know if you might be interested in contributing.

Showing Posts 1 to 10

OvermindDL1

OvermindDL1

Ooo, is it built on phoenix? That’d be cool. :slight_smile:

smpallen99

smpallen99 OP

@OvermindDL1 Yes!, Here are some additional details…

Architecture Notes

  • Elixir & Phoenix Backend
  • Light JS frontend
  • After initial page load, channels are used for UI rendering. HTML is rendered on the server and pushed to the client over channel
  • Originally build as a stand-a-lone single app.
  • In the process of refactoring it to be extensible through plugins
  • We will be using it for a client framework with initial support for the chat app and our commercial WebRTC soft phone (delivered as a plugin)

Current Features Implemented

  • Multiple channel types (public, private, direct messages)
  • Favourite channels
  • @mentions with audible and badge notifications
  • Presence with override
  • Message editing, pinning, starring, deleting
  • About 30 slash commands (create room, invite user, …)
  • Autolink and preview urls
  • Drag and drop file update with image and video preview
  • Emoji support with picker
  • Message reactions
  • Unread message handling
  • Customizable Role and Permission system
  • Some basic Bot experimental support
  • Code syntax highlighting
  • Profile editing and admin pages
  • Very configurable
  • and more …

Feature Roadmap

  • Peer to peer Video
  • Peer to peer Audio
  • Presence adapters for on-the-phone presence with Asterisk PBX
  • Mobile clients and Push notifications
  • Email and SMS notifications
  • OTR Conversations
  • Live chat feature
  • 3rd party integration (web hooks, Rest API)
    • BitBucket
    • Github
    • Jira
    • …
  • OAuth and LDAP
  • XMPP Integration
  • Internalization (Much of the UI uses gettext already)
  • UI theming
  • and more …
OvermindDL1

OvermindDL1

Huh, this would be nice to toss in to my existing system at work (if it is composable, I can PR if not) as a nice little bonus soon. :slight_smile:

We have both an onsite EMail (never touches the internet) and a hosted SMS Notification service at work, so I can test that the integrations work well. :slight_smile:

Yeah we use both of these at work so that would be nice. However I’ve built an entire login system that uses those as well as local Oracle database calls to perform logins so I will need some way to tie in to my system, I can try to PR things for that.

I’ve become exceptional the past few months at performing magic with CSS without needing javascript for a lot of things. ^.^

Would be nice to integrate with others as well, we have a PBX system here that, well, pre-dates Asterisk, but it does have API calls, so it would be nice to see if they’d let me call that here too. :slight_smile:

smpallen99

smpallen99 OP

I’m preparing for github right now. I’m thinking about a two project approach. First, I’ll put working source (before introducing plugin model rearchitecture) into a temporary project that people can try. I’ll also create the project with my new architecture (also renamed it) which will be the main project moving forward.

I’m also going to throw up a live demo. Perhaps we can use the live demo for design discussions :slight_smile:

OvermindDL1

OvermindDL1

Does it permanently store messages for unlimited lookback? I’d definitely need that (not allowed to host anything that does not permanently store, well, everything).

smpallen99

smpallen99 OP

Yes. All messages are persisted in the database. Right now, if you delete a message, it is removed from the DB. But I’m going to add a configuration that does not delete the message, but marks it deleted. Also need to deal with deleting channel, or user and what happens to those messages.

WolfDan

WolfDan

Looks and amazing project, I have a question, have you any plan about security? Or simply TLS encryption, also messages encripted etc…

OvermindDL1

OvermindDL1

That would be perfect! I rarely ever delete anything, ever, rather I have, well, you know the timestamps that phoenix adds by default? I have a removed_at timestamp as well that is nullable (and null by default) and I just check if it is null in my queries, it is ubiquitous through-out . If something has a primary key that may be created again then I just primary key it with the removed_at when null (so it does not exist for calculations if removed_at is not null).

smpallen99

smpallen99 OP

Right now, I think TLS is going to be enough for our customers. However, as an open source project, I’m expecting that we will be adding additional security measures like encrypting messages in the DB.

smpallen99

smpallen99 OP

Ok, I’ve pushed the source of the project (pre architecture change) to the UcxChat temporary repo. I’m working on hosting it now. Should have something soon.

Please be easy on me. There is some code in there I’m not proud of and needs to be refactored.

Where Next? Top

Trending in Discussions Top

budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
axelson
Hi there! :wave: @frigidcode and I (but mostly him) have been running an Elixir Book club, we’re almost done with Designing Elixir Syste...
New
achempion
I’ve been using Emacs as my main code editor for more than a two years. It’s a custom build version although I’ve tried doom emacs and sp...
New
budgie
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with. But I don’t use it anymore. Serverless was the promis...
New
jtormey
Lately I’ve been thinking about how to organize components as a LiveView application grows. One of the pain points I’ve found (for myself...
New
Null-logic-0
What IDE or editor are you using for Elixir development? Personally, I use Zed, and I really like it, but sometimes I wish there were a ...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
georgeguimaraes
Just published claude-code-elixir, a plugin marketplace for Claude Code with Elixir support. These are the plugins I’ve been using for my...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews