silentcord

silentcord

3 devlogs
35h 35m
•  Ship certified
Created by Blu Zed

Discord inspired chat app to host locally over a LAN
- built with TypeScript, ExpressJS & WebSockets + Vanilla HTML/CSS
- designed with Figma

Timeline

Earned sticker

Devlog #3!
Previous ship did not cover this devlog :(
The app now has a Github URL and a demo URL!
Updates: backend for file attachments is done, small cleanups and logouts now clear the access tokens (this wasnt done before xd)

Update attachment

Ship 1

1 payout of shell 47.0 shells

Blu Zed

about 1 month ago

Blu Zed Covers 2 devlogs and 16h 42m
Earned sticker

Devlog #2! The app now has.... colors! Passwords are now encrypted with bcrypt and not stored plaintext. Room password works. I dropped the idea of using MYSQL for account storage as it makes hosting this application locally a bit complicated and challenging since it would require a MYSQL server running alongside this application. Next stuff on my todo is adding request ratelimits to prevent ddos / dos atacks & implementing the voice chat and the music feature.

Update attachment
Earned sticker

This is the very first devlog of SilentCord!

This project is currently work-in-progress.
The core idea is the only thing that currently works.

What currently works

  • Users can login, register with their own username and passwords.
  • Users can then create a room and share the Room ID to other users.
  • WebSocket-based text-chat with minimal latency as it's locally hosted.
  • Only the Room creator can use the Destroy Room button.
  • All the authentication is done server-side and is based on a 7day expiry auth token cookie.

Currently Planned

  • Password encryption using the AES-256 algorithm (currently its in JSON for testing purposes).
  • The Voice Chat & Music channel.
  • File attachments in messages.
  • Fixing security vulnerabilities.

The GitHub repository will be made public soon along with a demo site.
Thank you.

Blu Zed Blu Zed about 1 month ago

@Fox I’m not storing them server-side currently, its simply transferred from the sender to the server and then broadcast to every other connected client in the same room using WebSockets.
I was thinking of using MySQL for storage however I dropped that idea since this was meant to be used as a simple locally hosted chat app with temporary chat rooms.
I know that this also means that a person joining late would be unable to see previous messages but this is intentional by design.
I plan on using IndexedDB to store messages client-side later on but I have some stuff to do before that.
Thank you for checking out my project.

foxmoss foxmoss about 2 months ago

how are you storing messages while keeping it fast?