DreamyChat is a community-driven hypnosis chat site. We aim to provide a safe and friendly environment to explore and practise recreational hypnosis, learn from watching others, or even just chat with friends. People also engage in and talk about erotic hypnosis, so this site’s not suitable for children or the easily-scandalised!

We have two main channels, Main Chat and the Playground. Conversation touches on a huge variety of topics in Main Chat, not only hypnosis. The Playground is for public trances, and visitors are free to participate or just spectate. We’re absolutely committed to a safe and consensual experience for everyone, so our moderators monitor sessions to make sure nothing goes too far. We care about your privacy, though, so you can also create unlogged rooms where messages will never be saved.

Everyone is welcome, even if you have no prior experience with hypnosis, so come in and say hello!



I like writing small, fast programs, and I don't like dependencies! A theme common throughout the site is to minimise network traffic and avoid unnecessary external libraries.

The chat server is written mostly in C/C++, using µWebSockets v0.14 to implement the websocket protocol and HTTP. The database uses SQLite 3, because that integrates nicely with everything else.

The site generates pages using raw PHP 7, running on the Apache 2 webserver. The RESTful API endpoints are also provided using PHP, although many of them are just wrappers for internal calls to the chat server.

Clientside, the site's JavaScript is all written from scratch, without any dependencies or bloated frameworks. I run my source files through a very basic homemade preprocessor, followed by UglifyJS to make it smaller and hide all my weird naming habits.

Stylesheets are written in SASS, and I use Autoprefixer to add vendor prefixes.