Remnachat
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.
A comprehensive real-time chat application inspired by WhatsApp with the following features:
- Tabs: All, People, Groups, Community
- Individual Messaging: Send messages to contacts
- Group Chat: Create, join, and participate in group conversations
- Contact Management: Add new contacts, manage group members
- Chat Room: Bottom-left icon for posting challenges and seeking help
- Real-time Updates: Live message delivery and notifications
- Customizable Settings: User preferences and app customization
- Custom Icon: Slanted letter "R" as app icon
- User-friendly Interface: Clean, intuitive design
- Responsive Design: Works on all devices
βββ backend/
β βββ index.ts # Main Hono server
β βββ database/
β β βββ migrations.ts # Database schema
β β βββ queries.ts # Database operations
β βββ routes/
β βββ auth.ts # Authentication routes
β βββ chat.ts # Chat operations
β βββ contacts.ts # Contact management
β βββ groups.ts # Group management
βββ frontend/
β βββ index.html # Main HTML template
β βββ index.tsx # React app entry point
β βββ components/
β β βββ App.tsx # Main app component
β β βββ ChatTabs.tsx # Tab navigation
β β βββ ChatList.tsx # Chat list view
β β βββ ChatWindow.tsx # Individual chat window
β β βββ GroupChat.tsx # Group chat component
β β βββ ChatRoom.tsx # Challenge chat room
β β βββ Settings.tsx # User settings
β βββ style.css # Custom styles
βββ shared/
βββ types.ts # Shared TypeScript types
- Backend: Hono (TypeScript API framework)
- Frontend: React with TypeScript
- Database: SQLite
- Real-time: WebSocket connections
- Styling: TailwindCSS
- Storage: Val Town Blob storage for media
The app will be available at the HTTP endpoint once deployed. Users can:
- Register/Login with their credentials
- Add contacts by username or phone
- Start individual chats or create groups
- Access the chat room for community challenges
- Customize settings according to preferences
GET /
- Serve the main applicationPOST /api/auth/login
- User authenticationPOST /api/auth/register
- User registrationGET /api/contacts
- Get user contactsPOST /api/contacts
- Add new contactGET /api/chats
- Get user chatsPOST /api/chats/send
- Send messageGET /api/groups
- Get user groupsPOST /api/groups
- Create new groupGET /api/chatroom
- Get chat room messagesPOST /api/chatroom
- Post to chat roomWS /ws
- WebSocket for real-time updates