untitled-1522
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Hono-based API server with LastLogin authentication, SQLite database, and group chat functionality.
index.ts
- Main HTTP handler with LastLogin wrapperdatabase/
- Database migrations and query functionsroutes/
- API route handlers
- All API routes require authentication via LastLogin
- User email is extracted from
X-LastLogin-Email
header
GET /api/conversations
- Get user's conversations (with participant info)GET /api/conversations/:id
- Get specific conversation with messagesPOST /api/conversations
- Create new conversationDELETE /api/conversations/:id
- Delete conversation (admin only)
GET /api/conversations/:id/participants
- Get conversation participantsPOST /api/conversations/:id/invite
- Invite user by email (admin only)DELETE /api/conversations/:id/participants/:userId
- Remove participant (admin only)
GET /api/invites/:token
- Get invitation details (public)POST /api/invites/:token/accept
- Accept invitation and join conversation
POST /api/chat
- Send message and get ChatGPT responseGET /api/conversations/:id/stream
- Server-Sent Events for real-time updates
chat_users_v1
- User accountschat_conversations_v1
- Conversation metadatachat_messages_v1
- Individual messages
conversation_participants_v1
- User-conversation relationships with rolesconversation_invites_v1
- Pending email invitations with tokens
- Automatic user creation on first login
- Conversation history storage with full message history
- ChatGPT integration via OpenAI API
- Group chat functionality with role-based permissions
- Email invitations with secure tokens
- Real-time updates via Server-Sent Events
- Secure user isolation - users can only access their conversations