A modern, anonymous group messaging web application built with Next.js and Supabase.
- 🚀 Real-time anonymous messaging
- 🎨 Unique random avatars for each user
- ⏱️ Ephemeral messages (2-minute expiration)
- 📱 Mobile-first, responsive design
- 🔒 No login required
- 🎯 User caps per Void
- 📸 Media sharing support (images and videos)
- 💫 Modern, futuristic UI
- Frontend: Next.js 14, TypeScript, TailwindCSS
- Backend: Supabase (PostgreSQL, Realtime, Storage)
- Authentication: Anonymous sessions
- Styling: TailwindCSS
- Icons: Heroicons
- Notifications: React Hot Toast
- Node.js 18+ and npm
- Supabase account
- Stripe account (for subscription features)
-
Clone the repository:
git clone https://github.com/yourusername/anonvoidz.git cd anonvoidz -
Install dependencies:
npm install
-
Set up environment variables: Create a
.env.localfile in the root directory with the following variables:NEXT_PUBLIC_SUPABASE_URL=your-supabase-project-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your-stripe-publishable-key STRIPE_SECRET_KEY=your-stripe-secret-key -
Set up Supabase:
- Create a new Supabase project
- Run the SQL commands from
supabase/schema.sqlin your Supabase SQL editor - Enable the pg_cron extension for message cleanup
- Set up storage buckets for media uploads
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
anonvoidz/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── page.tsx # Landing page
│ │ ├── create/ # Void creation page
│ │ └── void/[id]/ # Void chat page
│ ├── components/ # Reusable components
│ └── lib/ # Utility functions and configurations
├── public/ # Static assets
├── supabase/ # Database schema and migrations
└── package.json
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.