jeremyckahn / chitchatter

Secure peer-to-peer chat that is serverless, decentralized, and ephemeral
https://chitchatter.im/
GNU General Public License v2.0
1.53k stars 193 forks source link

Request: Stateful Rooms #249

Open dillfrescott opened 6 months ago

dillfrescott commented 6 months ago

I know this is against the point of Chitchatter but having an option to create a room that is persistent would be really cool. Just store the chats and data in the browser storage.

Having an option for this would be nice because it could allow for things such as:

Keeping track of notes.

Coming back to rooms with friends.

Not accidently refreshing the page and losing messages.


Again, this would be a separate option, potentially with a warning at creation.

But having such a feature seems very useful to me, and would greatly increase my usage of Chitchatter.

Let me know what you think.

dillfrescott commented 6 months ago

And since the storage is local, youd have to have the room open to sync, so even if someone guesses the url, they wouldnt receive any messages unless someone else actively had the room open.

dillfrescott commented 6 months ago

If this is against your image of chitchatter, could you maybe make it an env flag at buildtime for selfhosters?

jeremyckahn commented 6 months ago

Thanks for sharing the idea @dillfrescott! I think this is a really interesting idea and it's actually something I've been thinking about for a long time. I think there's a lot of interesting things we could do with persistent app storage, but it would invite a significant amount of complexity to Chitchatter's implementation and overall design. That's not to say it can't or shouldn't happen, but I'm hesitant to make such functionality a core part of Chitchatter because of that. There are a ton of great chat apps that provide persistent group chat, but I think what sets Chitchatter apart is that it goes its own way of having none whatsoever. I think this project will be best served by sticking with what makes it unique.

That said, I think we can meet both needs by adopting a sort of plugin architecture to support functionality built on persistent storage. That would enable Chitchatter to maintain a lean and focused set of core functionality, but it would also enable users to customize their experience to their liking.

What do you think about this approach, @dillfrescott?

dillfrescott commented 6 months ago

Yeah! That sounds good!