jeremyckahn / chitchatter Goto Github PK
View Code? Open in Web Editor NEWSecure peer-to-peer chat that is serverless, decentralized, and ephemeral
Home Page: https://chitchatter.im/
License: GNU General Public License v2.0
Secure peer-to-peer chat that is serverless, decentralized, and ephemeral
Home Page: https://chitchatter.im/
License: GNU General Public License v2.0
Users should be able to request a QR code to be presented that links to the current room.
When a user receives a message and the Chitchatter room is not in focus, play a sound to inform the user that there is a new message. This functionality should be off by default, but able to be enabled via a persisted user setting.
Chitchatter should be embeddable within another app.
To ensure stability and performance, message transcript size should be limited.
It should be indicated to peers when any other peer is actively typing.
Users should be able to send files to peers.
Adding Android
.apk
support is a distinct effort from Windows/Linux, so I'll break that out into a new issue.
Originally posted by @jeremyckahn in #44 (comment)
Generate and provide installable Android .apk
files as part of the build process.
Great work so far!
I'm trying to migrate this from CRA to nextjs, any clue if this is possible at all? Currently it's showing "Error: Trystero: already joined room".
Currently, audio and video streams are handled separately. This comes at a possible performance cost and blocks #77. The streams should be combined so that audio is outputted via <video />
elements that provide audio UI controls.
Chat messages should be limited to 10,000 characters.
Users should be able to create private rooms that require a password to access.
/private/:roomId
route (example: https://chitchatter.im/private/666e3a53-cdf9-4add-b8be-cd9853ba8885
)/private/:roomId
route, they are presented with a Form Dialog that prompts the Room Participant to enter the room password.Trystero's encryption functionality should be used to password-protect peer rooms.
Implement a "disclaimer" page with content adapted from what @MohammadTaseenKhan provided in #39.
Chitchatter needs an integrated OTP feature for securely sharing room links with peers. Something like https://burnernote.com/, but entirely client-side and built directly into Chitchatter.
/otp
/otp
route presents the user with a form that accepts a room name/otp/:otpId
route (example: https://chitchatter.im/otp/3b5ac1ff-e1c0-4797-9988-21a3e70302f2
)/otp/:otpId
Secure Link as provided by Sharer (see above), they are presented with a button to accept the inviteThis is just the first iteration of this feature. In the future, we should add the following enhancements:
I have tried multiple times with the same result. I cannot see the other user when I join a private room from Firefox on Android. When trying the Brave mobile browser on the same Android phone (Samsung S21), it works.
Public rooms do work on Firefox mobile.
Users should be able to make voice calls to peers.
I believe this would make a cool addition to the software! So you know what the video is before you click!
file sharing doesn't seem to work from/to my android device. I tested it on 4 different browsers (Chrome, Brave, Duckduckgo, Firefox).
Originally posted by @butera-simone in #72 (comment)
Allow the user to disable TURN server relays.
Please!!!
Users should be able to edit their messages after they've been sent.
When in safari on an iPhone 11, the content when I'm in a room does not fit the screen. I can either scroll down to the input field it up to the first message. I cant see both at the same time
It should be clearly indicated to the user that they can use Markdown in their messages.
Each message should present its timestamp to the user.
This would be especially good for larger files being sent over a chat room. Possibly a percentage and/or data progress counter when you hover over the icon.
Originally posted by MohammadTaseenKhan October 9, 2022
Recently I am facing a new problems like when i use Firefox browser i cant send any message, even cant receive any message even no notification coming to me
It doesn't even showing how many numbers of peers are connected
same as well this also
https://chitchatter.im/public/85ccdfc7-b992-411d-9d98-0a5c2781138e
Linux and Windows native apps should be produced when Chitchatter is deployed.
This can be achieved with electron-builder. Here's an example of how this can be achieved:
Note: MacOS builds are out of scope and not likely to be supported. This is because it will cost money to enable app auto-updating for that platform:
Code signing is required on macOS
macOS application must be signed in order for auto updating to work.
Use something like Vercel to set up preview deployment URLs for testing.
Message sounds effects (#7) don't appear to be working on Android or iOS.
https://chitchatter.im/public/chitchatter-dev
Meta community room for chitchatter users to discuss chitchatter development.
The usernames for all of the currently-connected peers should be displayed as a list.
A series of messages from one peer should appear grouped under the author's user name header, rather than one user name header per each message.
Users should able to make video calls to peers.
As an installed Progressive Web Application, available updates get automatically installed in the background after the page is loaded. When an updated version of the app is available, notify the user.
Peers who join a room after there has already been text chatting should be shown the transcript of conversation that has already taken place (based on what's stored in memory on other peers' devices).
Users should be able to upload image files to each other.
Indicate when peer communication is being done over a TURN server relay.
Users should have a Settings UI from which they can set their application preferences and delete their persisted Settings data.
Chitchatter should end-to-end encrypt file transfers for greater security.
Users should be able to share their screen with a room.
https://chitchatter.im/public/chitchatter
Meta community room for chitchatter users.
I think this would be really cool!
Should be able to send a private room URL which includes the password, such that one doesn't need to type in the room password. This is already an established pattern with zoom calls.
This can be contained purely in the local javascript layer by putting the password in the part of the URL after the hash #, since anything after hash is not sent to the server in the HTTP request.
If there's a concern about the URL being too readable, potentially a hash of the password is in the URL, rather than the password itself, and manually entered passwords are internally hashed to the same value before being passed to Trystero api call.
Per u/Bassfaceapollo on Reddit:
I hope you consider adding support for messaging over ad-hoc networks at some point.
This might give you some direction -
Users should have the ability to request sent messages to be deleted on all peers devices (provided that there is still an active peer connection).
When a user receives a message and the Chitchatter room is not in focus, present an operating system-level notification to inform the user that there is a new message. This functionality should be off by default, but able to be enabled via a persisted user setting.
Currently Chitchatter uses the default Create React App logo: https://github.com/jeremyckahn/chitchatter/blob/develop/public/logo512.png
The project needs something more distinctive and unique.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.