Skip to main content
Watch N Chill’s room system allows you to create private watch party spaces where you and your friends can watch videos together. Each room has a unique 6-character ID and persists for 24 hours.

Creating a Room

Creating a room is simple and requires only your name:
1

Navigate to Home

Go to the Watch N Chill homepage and locate the “Create Room” button.
2

Enter Your Name

Provide a display name (2-50 characters). This will be shown to other participants.
Names can contain letters, numbers, spaces, and basic punctuation (- _ . ! ?)
3

Room Generated

The system generates a unique 6-character room ID (e.g., A3X9K2). This ID is:
  • Random: Generated using base36 encoding for maximum randomness
  • Uppercase: Easier to read and share
  • Unique: Collision-resistant across the platform
4

Become Host

You’re automatically designated as the room host with full control privileges and a secret host token.

Host Token

When you create a room, you receive a secret host token:
The host token is stored in your browser’s session storage. If you clear your browser data or use a different device, you’ll lose host privileges. Keep your session active to maintain control.
  • Purpose: Authenticates you as the original room creator
  • Storage: Session storage (cleared when tab closes)
  • Security: Required to rejoin as host if you leave and return

Joining a Room

Guests can join existing rooms in two ways:
1

Enter Room ID

On the homepage, click “Join Room” and enter the 6-character room ID.
2

Provide Name

Enter your display name (2-50 characters).
You cannot use a name that’s already taken in the room. Choose something unique!
3

Join as Guest

You’re added to the room as a guest with viewing and chat privileges.

Name Validation

Names must meet these requirements:
  • Length: 2-50 characters
  • Characters: Letters, numbers, spaces, and - _ . ! ?
  • Uniqueness: Not already taken by another participant
  • Not Reserved: Cannot use the host’s name unless you have the host token
If someone leaves the room, their name becomes available again for new joiners.

Room Roles

Each room has two types of participants:

Host

Privileges:
  • Control video playback (play, pause, seek)
  • Change videos
  • Promote guests to host
  • Send chat messages
Notes:
  • Multiple hosts are supported
  • Original creator has host token for re-entry

Guest

Privileges:
  • View synchronized video
  • Send chat messages
  • See typing indicators
Limitations:
  • Cannot control playback
  • Cannot change videos
  • Can request promotion from hosts

Room Persistence

Rooms are stored in Redis with automatic expiration:

Storage Details

Each room is stored as a JSON object with a key pattern:
room:{roomId}
The room object contains:
  • id: Room ID
  • hostId: Current primary host’s user ID
  • hostName: Original creator’s name
  • hostToken: Secret token for host re-authentication
  • videoType: Current video type (“youtube” or null)
  • videoUrl: Current video URL (if set)
  • videoState: Playback state (time, playing status, duration)
  • users: Array of current participants
  • createdAt: Room creation timestamp
A Redis set tracks all active rooms:
active-rooms
This allows efficient cleanup and room enumeration.

Expiration

Rooms automatically expire after 24 hours (86,400 seconds). This TTL is refreshed on every room update.
  • Time-to-Live: 24 hours from creation or last update
  • Auto-Cleanup: Redis automatically removes expired keys
  • Grace Period: No grace period - after 24 hours, the room is gone

Room Closure

Rooms can close in two scenarios:

Last Host Leaves

When the final host leaves or disconnects:
1

Detection

The system detects that no hosts remain in the user list.
2

Notification

All remaining guests receive a “room-error” event:
{
  "error": "All hosts have left the room. Redirecting to home page..."
}
3

Deletion

The room is immediately deleted from Redis, including all state and chat history.
4

Redirect

Guests are automatically redirected to the homepage after a 1.5-second delay.
Room Closure is ImmediateWhen all hosts leave, the room closes instantly. There’s no “host migration” - if you want the room to continue, promote at least one guest to host before leaving.

All Users Leave

If every participant (host and guests) leaves:
  • Room is deleted from Redis
  • All associated data (chat, video state) is removed
  • Room ID becomes available for reuse

Multiple Hosts

Watch N Chill supports multiple simultaneous hosts:

Promoting Guests

Hosts can promote any guest to host status:
1

Open User List

In the room sidebar, locate the participant you want to promote.
2

Click Promote

Click the crown icon button next to their name.
3

Instant Promotion

The guest is immediately promoted and gains all host privileges.
4

Notification

All participants see an update that the user is now a host.

Multiple Host Behavior

Shared Control

All hosts can control playback simultaneously. Last action wins.

Independent Sync

Each host sends periodic sync checks every 5 seconds.

No Conflicts

The system doesn’t enforce “who’s in control” - collaboration is expected.

Equal Privileges

All hosts have identical permissions, including promoting others.
Multiple hosts are perfect for co-hosting watch parties where you want to share control responsibilities.

Sharing Your Room

Share your room with friends using multiple methods:

Copy Room ID

Click the “Copy Room ID” button in the room header to copy the 6-character code to your clipboard. Click the “Share” button to:
  • Use native share dialog (mobile)
  • Copy full URL to clipboard (desktop)
The URL format is:
https://watchnchill.app/room/{roomId}

Manual Sharing

Simply tell your friends the 6-character room ID and they can enter it on the homepage.

Room Limitations

Current Limitations
  • Maximum room duration: 24 hours
  • No room passwords or access control
  • No persistent room URLs (expires after 24h)
  • No room customization (themes, names)
  • Anyone with the room ID can join

Best Practices

Promote Co-Hosts

Promote trusted friends to host early in case you disconnect.

Share Responsibly

Only share room IDs with people you want in your watch party.

Plan Duration

Rooms expire after 24 hours - plan longer watch sessions accordingly.

Save Room ID

Keep your room ID handy if you need to rejoin after disconnecting.

Troubleshooting

Can’t Join Room

“Room not found” error:
  • Room may have expired (24-hour limit)
  • Room ID might be incorrect (check for typos)
  • Host might have left, closing the room

Lost Host Status

Joined as guest instead of host:
  • Your session storage was cleared
  • You’re on a different device
  • Your browser restarted
If you lose host status and no other hosts exist, the room will close when you leave. Create a new room if needed.

Name Already Taken

“Name already taken” error:
  • Someone else in the room has that name
  • Choose a different name to join
  • If it’s you on a different device, the system sees it as a different user

Build docs developers (and LLMs) love