A modern cross-platform chat client built with Next.js 15, React 19 and TypeScript, designed for Discord-like real-time communication.
- 🚀 Modern Framework: Built with Next.js 15 and React 19
- 💬 Real-Time Chat: Instant communication using Socket.IO
- 🔐 Secure Authentication: Keycloak integration using NextAuth.js
- 📱 Responsive Design: Adaptive interface for desktop
- 🎨 Modern UI: Elegant components with Radix UI and Tailwind CSS
- Create and manage servers (guilds)
- Organize conversations in channels
- Discover public servers
- Member and role system
- Real-time message sending
- Emoji support with emoji-mart
- Message editing and deletion
- Live typing indicators
- Customizable user profiles
- Activity status (online, idle, etc.)
- Federated authentication with Keycloak
- Server and channel sidebar
- Members panel
- Content creation modals
- Adaptive design with resizable panels
- Next.js 15: React framework with App Router
- React 19: UI library with latest features
- TypeScript: Static typing for enhanced robustness
- Socket.IO Client: Real-time communication
- Axios: HTTP client with interceptors
- TanStack Query: Server state management
- NextAuth.js: Authentication and authorization
- Keycloak: Federated identity provider
- Tailwind CSS: Utility-first CSS framework
- Radix UI: Accessible primitive components
- Framer Motion: Smooth animations
- Lucide React: Modern iconography
- ESLint: Code linting
- Prettier: Code formatting
- pnpm: Efficient package manager
This project requires the following services to function properly:
The frontend communicates with a REST API that must be running at:
- Base URL: Configured via
NEXT_PUBLIC_REST_API_URL - Version: API v1 (
/api/v1) - Authentication: Bearer tokens via Keycloak
For real-time communication:
- URL: Configured via
NEXT_PUBLIC_SOCKET_URL - Protocol: Socket.IO with JWT authentication
For authentication and authorization:
- Issuer URL: Configured via
KEYCLOAK_ISSUER - Client ID/Secret: Configured in environment variables
- Flow: Authorization Code with PKCE
- Node.js: 22.0.0 or higher
- pnpm: 8.0.0 or higher (recommended)
git clone https://github.com/Datzu712/fidechat-web
cd fidechat-frontendpnpm installCreate a .env file in the project root:
# NextAuth Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-nextauth-secret-here
# Keycloak Configuration
KEYCLOAK_CLIENT_ID=your-keycloak-client-id
KEYCLOAK_CLIENT_SECRET=your-keycloak-client-secret
KEYCLOAK_ISSUER=https://your-keycloak-server/realms/your-realm
# Backend Services
NEXT_PUBLIC_REST_API_URL=http://localhost:8080
NEXT_PUBLIC_SOCKET_URL=http://localhost:3001Note: Make sure all backend services are configured and running before starting the frontend.
pnpm devThe application will be available at http://localhost:3000.
# Development with Turbo
pnpm dev
# Production build
pnpm build
# Start production server
pnpm startFor local development, ensure that:
- Keycloak is configured with the appropriate client
- Redirect URLs include
http://localhost:3000 - CORS is enabled in the backend
The project uses Turbo for ultra-fast hot reload during development.
Make sure to configure all necessary environment variables on your deployment platform.
pnpm build
pnpm start