A modern, real-time private chat application built with React, TypeScript, and Supabase. Create temporary chat rooms with secret codes and enjoy secure, private conversations.
- Create rooms with unique IDs and security codes
- Join existing rooms using room ID and security code
- Temporary storage - messages are not permanently stored
- Secure access - only users with correct codes can join
- Instant message delivery across all users in the room
- Message persistence - messages load on page refresh
- Cross-device communication - works seamlessly across browsers
- Optimistic UI updates for smooth user experience
- Display name customization - change your name anytime
- Name change notifications - other users see when names change
- System messages - beautiful notifications for room activities
- User presence - see when users join/leave rooms
- Responsive design - works on desktop and mobile
- Dark/Light themes - toggle between themes
- Beautiful animations - smooth transitions and effects
- Intuitive interface - easy to use for all users
- Real-time subscriptions using Supabase Realtime
- Fallback polling for reliable message delivery
- Error handling with user-friendly messages
- TypeScript for type safety and better development
Visit the live application: flickr-talk.vercel.app
- Frontend: React 18 + TypeScript + Vite
- Styling: Tailwind CSS + shadcn/ui components
- Backend: Supabase (PostgreSQL + Realtime)
- Deployment: Vercel
- State Management: React Context + Custom Hooks
- Real-time: Supabase Realtime subscriptions
- Node.js 18+
- npm or yarn
- Supabase account and project
- Vercel account (for deployment)
git clone https://github.com/gpl-gowthamchand/FlickrTalk.git
cd FlickrTalk
npm install
Create a .env
file in the root directory:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
Run this SQL in your Supabase SQL editor:
-- Create messages table if it doesn't exist
CREATE TABLE IF NOT EXISTS public.messages (
id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
content TEXT NOT NULL,
room_id TEXT NOT NULL,
sender TEXT NOT NULL,
timestamp TIMESTAMPTZ DEFAULT NOW()
);
-- Add foreign key constraint
ALTER TABLE public.messages
ADD CONSTRAINT messages_room_id_fkey
FOREIGN KEY (room_id) REFERENCES public.chat_rooms(id) ON DELETE CASCADE;
-- Enable RLS and create policies
ALTER TABLE public.messages ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Allow anonymous access" ON public.messages
FOR ALL USING (true) WITH CHECK (true);
-- Grant permissions
GRANT ALL ON public.messages TO anon;
npm run dev
npm run build
FlickrTalk/
βββ src/
β βββ components/ # UI components
β β βββ chat/ # Chat-related components
β β βββ ui/ # Reusable UI components
β β βββ app/ # App-specific components
β βββ contexts/ # React contexts
β βββ hooks/ # Custom React hooks
β βββ integrations/ # External service integrations
β βββ pages/ # Page components
β βββ types/ # TypeScript type definitions
β βββ utils/ # Utility functions
βββ public/ # Static assets
βββ supabase/ # Supabase configuration
βββ package.json # Dependencies and scripts
- Create a new Supabase project
- Get your project URL and anon key
- Update the
.env
file with your credentials - Run the database setup SQL
- Connect your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push to main branch
- Visit the application
- Enter your display name
- Click "Create Room"
- Share the room ID and security code with others
- Enter your display name
- Input the room ID and security code
- Click "Join Room"
- Click the menu (three dots) in the top right
- Select "Change Profile Name"
- Enter your new name
- Other users will see a notification about the name change
- Secret codes required to join rooms
- Temporary storage - messages not permanently stored
- Room verification - validates room existence and access
- Anonymous access - no user accounts required
The application is automatically deployed to Vercel on every push to the main branch.
Live URL: flickr-talk.vercel.app
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is open source and available under the MIT License.
G P L Gowtham Chand
- GitHub: @gpl-gowthamchand
- Website: gowthamchand.vercel.app
- Email: [email protected]
- Built with React
- Styled with Tailwind CSS
- Powered by Supabase
- Deployed on Vercel
This project was developed with the assistance of various AI tools and development assistants:
- π‘ Original Concept & Ideas: ME (the genius behind this whole thing! π€π )
- π€ ChatGPT: Provided suggestions, planning guidance, and content recommendations
- π GitHub Copilot: Assisted with code automation, suggestions, and development workflow
- β‘ Cursor: AI-powered code editor that enhanced development productivity
Note: While AI tools provided valuable assistance, the core concept, architecture decisions, and final implementation are entirely the developer's own work and creativity.
FlickrTalk was conceived as a solution for creating secure, temporary chat rooms that don't require user accounts or permanent data storage. The goal was to build something simple yet powerful - a tool that lets people have private conversations without the complexity of traditional chat applications.
FlickrTalk - Where private conversations happen securely and beautifully. β¨