go-chat is a chat application that includes text and audio messaging.
Read the blog post where I talk about the building process.
The goal was to learn how to use websockets and make a functional real-time application.
- Go version 1.24.6+
- PostgreSQL
Clone the repo:
git clone https://github.com/MudassirDev/go-chat.git
cd go-chatInstall dependencies:
go mod tidyCopy the env file:
cp .env.example .env # Setup a postgres DB and update the urlRun the application:
make build && make run- Real-time text messaging
- Voice message recording and playback
- User authentication (token-based)
- Message persistence
- WebSocket-based communication
- Gorilla Websockets — WebSocket implementation for Go
- PostgreSQL — Database for storing messages and user data
- Backend: Go with Gorilla WebSockets
- Frontend: HTML, CSS, JavaScript with MediaRecorder API
- Database: PostgreSQL
- Storage: Local file system for audio files
- Message read/unread states
- S3 integration for audio file storage
- Group chat functionality
- Typing indicators