chattyChat (temporary name) is a modern real-time communication platform built for communities, teams, and social spaces. It focuses on fast interactions, persistent conversations, rich user profiles, and a scalable architecture designed to grow into a full-featured social communication platform.
- Real-time messaging using WebSockets
- Persistent message history
- Multi-room navigation
- User presence (online / away / busy / offline)
- Markdown support
- GIF integration
- Image & video sharing (with expiration support)
- Typing indicators
- Message deletion (author-only)
- Avatar & banner
- Bio, pronouns, timezone
- Custom accent color
- Persistent preferences
- Clean, responsive UI
- Dark mode with persistence
- Fast sidebars (users & rooms)
- Low-latency, distraction-free experience
- Multiple chat rooms
- Architecture ready for categories & threads
- Designed for growing communities
- Mentions & notifications
- Direct messages
- Message reactions & custom emojis
- Role-based permissions
- Kick / ban / timeout
- Anti-spam basics
- Two-factor authentication
Frontend
- React (Vite)
- Socket.io-client
- SCSS
Backend
- Node.js
- Express
- Socket.io
Database
- SQLite (better-sqlite3)
The full roadmap is available here: ➡️ ROADMAP.md
pulse-chat/
├── backend/
│ ├── database/
│ ├── package-lock.json
│ ├── package.json
│ ├── src/
│ │ ├── config/
│ │ ├── handlers/
│ │ ├── middleware/
│ │ ├── routes/
│ │ ├── server.js
│ │ └── services/
│ └── uploads/
│
├── frontend/
│ ├── README.md
│ ├── index.html
│ ├── package-lock.json
│ ├── package.json
│ ├── src/
│ │ ├── App.jsx
│ │ ├── components/
│ │ ├── contexts/
│ │ ├── features/
│ │ │ ├── auth/
│ │ │ ├── chat/
│ │ │ └── profile/
│ │ ├── hooks/
│ │ ├── main.jsx
│ │ ├── styles/
│ │ │ ├── components/
│ │ │ ├── features/
│ │ │ ├── globals/
│ │ │ ├── index.scss
│ │ │ ├── layout/
│ │ │ ├── themes/
│ │ │ └── utils/
│ │ └── utils/We welcome contributions! To get started:
- Fork the repository
- Clone your fork locally
- Install dependencies in both
frontend/andbackend/ - Create a new branch for your feature or bugfix
- Submit a pull request with a clear description of your changes
Please follow the existing code style and respect the project architecture. For major changes, feel free to open an issue first to discuss the approach.