STORM DAY

A full-stack real-time chat application built with a microservices architecture. Supporting private conversations, group chats, message replies, forwarding, editing, file attachments, typing indicators, and delivery receipts — all in real time.

Tech Stack

Frontend

Vue 3TypeScriptVitePiniaNuxt UIGSAP

Backend

GoNestJSNATSPostgreSQLRedisDocker

Architecture Overview

Browser
Vue 3 SPA
HTTP REST / WebSocket
Gateway:8080
Go, chi router, gws WebSocket
NATS
User Service:3000
NestJS, PostgreSQL
Message Service:8081
Go, PostgreSQL
Media Service
Go, MinIO
NATS publish
Notification Service
Go
Learn more about the architecture

Key Features

Real-time Messaging

WebSocket-based instant messaging with typing indicators and delivery receipts

Group Chats

Create and manage group conversations with role-based permissions

Microservices

Scalable architecture with independent services communicating via NATS

REST API

Comprehensive REST endpoints for authentication, users, messages, and groups

Message Features

Reply, forward, edit messages with file and media attachments support

High Performance

SO_REUSEPORT for maximum WebSocket throughput with parallel TCP listeners

Documentation