Skip to content

dinhdev-nu/chat_app_platform

Repository files navigation

Stello – Chat Platform

Stello

A modern real-time messaging platform

A production-grade chat client built with Next.js 16, React 19, TypeScript, Tailwind CSS, Zustand, and WebSocket — featuring OTP auth, group conversations, reactions, read receipts, and live updates.


Next.js React TypeScript Tailwind CSS Zustand pnpm


📸 Screenshots

Landing Page Sign In Chat
Landing Page Sign In Chat

✨ Features

Category Details
🔐 Authentication Email OTP sign-in with persisted session state and middleware-protected routes
💬 Messaging Direct messages and group conversations with full CRUD support
👥 Contacts Contact search, contact requests, and incoming request management
Real-time WebSocket-powered live updates with reconnect handling
👀 Presence Typing indicators, read receipts, and viewing events
😄 Reactions Emoji reactions on messages
🌗 Theming Light/dark mode via next-themes
📱 Responsive Mobile-first layout using Tailwind CSS and Radix UI

🛠 Tech Stack

Layer Technology
Framework Next.js 16 — App Router
UI React 19, TypeScript 5
Styling Tailwind CSS 4, Radix UI, shadcn-style components
Animations Framer Motion
Icons lucide-react
State Zustand 5
Forms React Hook Form
HTTP Axios with typed API envelopes and interceptors
Realtime Native WebSocket
Tooling pnpm, ESLint

📋 Requirements

  • Node.js 22 or newer
  • pnpm 9 or newer
  • A running backend that implements the API and WebSocket contracts in docs/

🚀 Getting Started

1. Clone the repository

git clone https://github.com/dinhdev-nu/stello.git
cd stello

2. Install dependencies

pnpm install

3. Configure environment (optional — only if using a separate backend host)

# .env.local
NEXT_PUBLIC_API_BASE_URL=http://localhost:8080/api/v1

If omitted, the app defaults to /api/v1.

4. Start the development server

pnpm run dev

Open http://localhost:3000 in your browser. 🎉


📜 Scripts

Command Description
pnpm run dev Start the local development server
pnpm run build Create an optimized production build
pnpm run start Serve the production build
pnpm run lint Run ESLint across the project

🗂 Project Structure

Stello Project Structure

📖 API Documentation

Backend contracts are documented in the docs/ folder:

File Description
auth_openapi.md Authentication endpoints (OTP flow)
user_openapi.md User and contact management
room_openapi.md Conversation and group rooms
message_openapi.md Message CRUD and reactions
ws_open.md WebSocket event contracts
api.md General API conventions

🤝 Contributing

Issues and pull requests are welcome once the project is licensed for public collaboration.

When submitting a PR, please:

  • Keep changes focused and minimal in scope
  • Describe the user-facing impact clearly
  • Include screenshots or recordings for any UI changes

📝 Open Source Checklist

Before the public release, the following files should be added:

  • LICENSE
  • CONTRIBUTING.md
  • SECURITY.md
  • .env.example

Made with ❤️ by dinhdev-nu

About

Real-time messaging client built with Next.js 16, React 19, TypeScript, Tailwind CSS, and WebSocket — featuring OTP auth, group chats, reactions, and read receipts.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors