A real-time chat application with channels, typing indicators, and emoji reactions. Built with Next.js and designed to connect to Supabase Realtime.
Currently runs as a client-side demo using BroadcastChannel API for cross-tab sync. Add Supabase credentials to enable full real-time messaging across users.
- Multiple chat channels (General, Random, Tech Talk)
- Real-time message delivery (cross-tab sync in demo mode)
- Typing indicators
- Emoji reactions on messages
- Online user presence
- Dark theme (Discord/Slack inspired)
- Responsive design with collapsible sidebars
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- Real-time: BroadcastChannel API (demo) / Supabase Realtime (production)
npm install
npm run devOpen multiple tabs to see real-time sync in action.
- Create a Supabase project
- Create a
messagestable with columns: id, channel, username, content, reactions, created_at - Enable Realtime on the messages table
- Add credentials to
.env.local:
NEXT_PUBLIC_SUPABASE_URL=https://xxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
