matrix
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.
Viewing readonly version of main branch: v119View latest version
A beautiful web-based Matrix client built with React and TailwindCSS featuring customizable themes and accent colors.
- Connect to any Matrix homeserver
- Login with username/password
- View and join rooms
- Send and receive messages
- Real-time message updates
- Customizable themes with multiple color schemes
- App settings page for theme customization
- Responsive design with improved UI
- Enhanced message display with better grouping
- Smooth animations and transitions
βββ backend/
β βββ index.ts # Proxy server for Matrix API (CORS handling)
βββ frontend/
β βββ components/
β β βββ App.tsx # Main application component
β β βββ Login.tsx # Login form
β β βββ RoomList.tsx # List of joined rooms
β β βββ ChatView.tsx # Chat interface
β β βββ MessageList.tsx # Message display
β β βββ MessageInput.tsx # Message composition
β β βββ Settings.tsx # App settings and theme selection
β βββ index.html # Main HTML template
β βββ index.tsx # Frontend entry point
βββ shared/
β βββ types.ts # Shared TypeScript types
β βββ themes.ts # Theme definitions and utilities
βββ README.md
- Open the application
- Enter your Matrix homeserver URL (e.g., https://matrix.org)
- Login with your Matrix credentials
- Browse rooms and start chatting!
- β Advanced Theme System: Multiple color themes with CSS custom properties
- β App Settings Page: Dedicated settings interface for theme customization
- β Theme Persistence: Remembers selected theme across sessions
- β Live Theme Preview: See how themes look before applying them
- β Smooth Theme Transitions: Beautiful animated color changes
- β No Flash Loading: Theme applied before page render to prevent white flash
- β System Integration: Automatically follows system dark/light mode preference as default
- β Responsive Design: Works perfectly on desktop and mobile
- β Enhanced Login: Gradient background with improved form styling
- β Tabbed Interface: Separate tabs for public rooms and direct messages
- β Private Messages: Full support for direct message conversations
- β Smart Room Detection: Automatically categorizes rooms vs DMs
- β Advanced Chat View: Enhanced message bubbles with better grouping
- β Smart Message Display: Date separators and time grouping
- β Fixed Input Box: No more scrolling issues, proper auto-resize
- β Duplicate Prevention: Smart filtering to prevent message repetition
- β Real-time Sync: Live message updates with optimized polling
- β Session Persistence: Automatic login restoration
- β Error Handling: Comprehensive error states with retry options
- β Optimistic Sending: Messages appear instantly with proper fallback
- β Smooth Animations: CSS transitions and message animations
- β Custom Scrollbars: Styled for all themes
- Backend: Hono-based proxy server to handle CORS issues with Matrix homeservers
- Frontend: React SPA with TailwindCSS for styling
- Real-time: Polling-based sync for new messages
- Storage: LocalStorage for session persistence
- API: Matrix Client-Server API v1.0
The backend serves as a proxy to handle CORS issues with Matrix homeservers.
All Matrix API calls are proxied through /api/matrix/* endpoints.