I made Hideout, a service for private, persistent chat rooms

What is Hideout?

Hideout is a self-hosted service that makes private, persistent chat rooms possible. It requires no installation or account creation. Unlike disposable chat, a Hideout room preserves privacy without expiring.

The GitHub repo contains a detailed introduction, and guides for hosting, building, and contributing: https://github.com/techmindful/hideout

A video demo can be watched here: https://vimeo.com/564494164.

A demo instance is running at hideout-demo.com. Uptime is expected to be unstable. Do not trust it for your own private conversations.

Language stack is Haskell/Elm. Haskell, Elm, and the privacy community need more killer apps! Hideout tries to be as pretty and feature-rich as possible, so that when people opt for privacy, they won’t be getting a lackluster alternative.


A lot of security is about minimizing the attack surface.
The demo shows a web page with scripts running. How do you make sure the web browser won’t betray your users?

Edit: sorry, it says clearly in the Readme that the use case is a a convenient setup for non-tech-savvy friends, presumably more personalizeable than hosting a Matrix server and a webclient for that.

Yes, a more tech-savvy person will host the server for their less tech-savvy friends.
Though I don’t think having more personalization is Hideout’s goal, if that’s what you mean. Compared to Matrix, Hideout is more convenient to use, because nobody needs to sign up for an account.

I’ve meant the “tech-savvy person’s” preference for coding/hosting the thing exactly they way they want, haha!
With your own Matrix-compatible webclient, you could auto-signup people on your server with a link as well, using the same link to log back in and authenticate, why not.

1 Like

Ah, I see what you mean now! Matrix auto signup is like creating an account, but nobody needs to do it manually. A Matrix account accessible with a link is similar to a Hideout room accessible with a link. The difference is that the account is there, and it can store a lot more information. In contrast, Hideout’s current design doesn’t seem capable of storing even username.

You presented a very new idea! I only know one Matrix client, which is Element. Maybe building a new client in Elm, and possibly some automation for the auto signup part on the server in Haskell, this really can work and simplify the user on-boarding for Matrix?

1 Like

You got it, a link can store room invites/permissions and an authentication key, so you can have simple one-click invites and rejoins, but also build things on a better supported protocol that is already well-designed.

When it comes to Matrix clients, there’s a list: matrix.org/clients
But since you already have Hideout, you could just use the protocol in the back without showing your users that it is technically a Matrix client. Just connect to your own server without any federation nonsense (haha).
Adding fancy features like bridging other chats into your Hideout rooms etc. can always wait :slight_smile:

Building on the better Matrix protocol will yield much benefit. I think I’m going to work on this idea of transforming it into a Matrix client, if similar projects aren’t existing or started elsewhere. The idea of auto signup and auto login with a link, which brings user to an account storing multiple rooms and settings, is very appealing. Thank you for that :+1: