Feature Guide
Everything a weekend group needs, behind one room link.
cht.so is built for event-lived rooms: fast joining, live chat, live photo walls, useful shared resources, light admin controls, and a clear way to close the room when the event is done.
Join by link
Guests open /r/your-room from a QR code or shared URL. There are no accounts or email invites.
- Choose a display name
- Pick a color or use a suggested one
- Identity is saved locally on the device
Realtime chat
Messages update live in the room and keep the timeline moving without a full page refresh.
- Optimistic sends
- Replies and edit window
- Read and received details
- Typing indicators
Mentions and notifications
Use @mentions to call someone into the conversation and trigger push notifications when supported.
- Inline @user suggestions
- Mention highlighting
- Push notifications for mentions
- Notification actions
Virtual DJ music
Create a shared YouTube playlist, host playback from one device, and let guests vote what plays next.
- YouTube links and playlists
- One host deck
- Guest add and vote controls
- Local preview for non-hosts
Emoji reactions
React to messages without adding noise to the chat stream.
- One reaction per emoji per user
- Reaction details
- Smooth heart and balloon effects
- Inline emoji entry
Photo album
Collect shared photos and turn them into a fullscreen live photo wall for the room.
- Browse or download selected media
- Live wall starts from a random photo
- New photos queue next
- Emoji reactions jump to the reacted photo
Shared lists
Build a list in the composer, then publish it into the chat stream when it is ready.
- Queue multiple items before sending
- Assign items to @users
- Assigned items can only be ticked by that person
- Completed lists disappear from the jump banner
Polls
Create a quick group decision directly in the chat.
- Add multiple options
- Vote from the stream
- Live totals
- Useful for plans, food, rides, and timing
Agenda
Queue one or more events, then publish the agenda with an optional caption.
- Date and time
- Location name
- Reminder minutes
- Past agenda items stop appearing in the jump banner
Locations and photos
Attach a current location or image to a message from the add menu.
- Location opens from the message
- Camera and photos picker
- Optional captions
- Mobile-first controls
Split expense tracking
Add a receipt, total, split method, and participants, then track outstanding balances and paid status in profiles and split cards.
- Even, percentage, or exact split
- Receipt image support
- Balances net by person
- Paid/unpaid status per participant
Room admin
The first room creator becomes an admin and can manage the room from the room details dialog.
- Theme colors and backgrounds
- Album URL and welcome message
- Join password
- Promote, eject, or delete
Mobile app feel
cht.so is installable as a browser-based app on supported mobile devices.
- Web app manifest
- Service worker
- Full-screen home-screen launch
- Vercel-ready deployment
How It Works
The intended room flow.
Create the room
Pick a short room name from the homepage. The first guest to create it becomes the first admin.
Set the room up
Tap the room name to set the album URL, welcome message, theme, expiry, join password, and admin controls.
Invite guests
Use the invite button to share the link or show the QR code. If a password is enabled, the invite can include it.
Add resources
Tap the plus button beside the input to queue music, lists, agenda items, polls, splits, photos, or locations.
Publish with Send
For resources, the main Send button publishes the completed resource into the chat stream with optional caption text.
Wrap it up
Let the room expire automatically or delete the room and contents from the admin controls.
For hosts
Use room settings to theme the chat, add the photo album, launch the live photo wall, set the room expiry, protect access, and manage guests.
For guests
Join without an account, keep your name on the same device, react to messages, and handle your own split balances.
For costs
Split expense tracking nets by person, so several expenses between the same people turn into one outstanding amount with paid/unpaid status.
Ready to try it?
Create your own room from the homepage.