kChat supports multiple named chat rooms, each uniquely identified by a numeric ID stored in Supabase. Rooms are the top-level organisational unit of the app — every message belongs to exactly one room, and you always chat inside a specific room rather than a shared global feed.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/korynthian/chatroom/llms.txt
Use this file to discover all available pages before exploring further.
Room List on the Home Page
When you openindex.html, the script indextablenames.js immediately queries the Supabase rooms table, ordering results by created_at ascending so that the oldest rooms appear first. Each room is rendered as a clickable link that takes you straight into the chat view for that room.
URL Hash Navigation
kChat uses URL hash fragments for room routing. Clicking a room link — or navigating directly in your browser — loadschat.html with the room ID embedded in the hash:
chat.js checks the URL for a #roomID= fragment and writes that value to localStorage under the key room_id. This means the last-visited room is automatically remembered: if you open chat.html without a hash, the app reads room_id from localStorage and redirects you back to that room immediately.
When No Room Is Specified
If there is no#roomID= in the URL and no room_id saved in localStorage, kChat prompts you to type a room ID directly:
1.
Creating Rooms
There is no in-app UI for creating rooms. Rooms are added directly in the Supabase dashboard or via the SQL editor. To create a new room, run anINSERT against the rooms table:
id and created_at columns are populated automatically. Once inserted, the new room appears on the home page the next time index.html is loaded.
The
rooms table has three columns:| Column | Type | Notes |
|---|---|---|
id | bigint | Auto-generated primary key (GENERATED ALWAYS AS IDENTITY) |
name | text | The display name shown on the home page |
created_at | timestamptz | Set to now() automatically on insert |