A real-time messaging app built with Next.js, Convex, and Clerk.
- Real-time messaging — instant delivery with live typing indicators
- Group chats — create groups, invite members, upload avatars
- Presence status — see who's online in real time
- Emoji reactions — react to messages with emojis
- Unread badges — track unread messages per conversation
- User profiles — custom usernames and synced avatars
- Secure auth — powered by Clerk with protected routes
| Layer | Technology |
|---|---|
| Framework | Next.js (App Router) |
| Backend / DB | Convex |
| Auth | Clerk |
| Styling | Tailwind CSS |
| UI Components | shadcn/ui |
| Icons | Lucide React |
pnpm install
pnpm devCreate a .env.local with:
CONVEX_DEPLOYMENT=
NEXT_PUBLIC_CONVEX_URL=
NEXT_PUBLIC_CONVEX_SITE_URL=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
CLERK_JWT_ISSUER_DOMAIN=
© 2026 DM-0. All rights reserved.