A modern, real-time social media platform inspired by Twitter, built with cutting-edge web technologies. Share your thoughts, connect with others, and stay updated with the latest trends.
- Real-time Feed: Instant updates as new posts appear
- User Authentication: Secure sign-in with Google OAuth
- Rich Posts: Share text and images with your followers
- Interactive Engagement: Like and comment on posts
- Responsive Design: Optimized for desktop and mobile devices
- Modern UI: Beautiful interface built with Tailwind CSS and Framer Motion
- Next.js 15.1.11 - React framework with App Router
- TypeScript 5 - Type-safe JavaScript
- Tailwind CSS 4 - Utility-first CSS framework
- React 19.1.0 - UI library
- Supabase - Backend-as-a-Service with real-time database
- Framer Motion 12.23.24 - Animation library for React
- Jotai 2.15.0 - State management
- Heroicons 2.2.0 - Icon library
- Day.js 1.11.18 - Date manipulation library
- React Responsive Modal 7.1.0 - Modal component
- ESLint - Code linting
- PostCSS - CSS processing
- Node.js 18+ and npm
- Supabase account and project
-
Clone the repository
git clone https://github.com/yourusername/tweel.git cd tweel -
Install dependencies
npm install
-
Set up Supabase
- Create a new project at supabase.com
- Copy your project URL and anon key
- Create a
.env.localfile in the root directory:NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Configure Supabase Database
- Run the SQL migrations in your Supabase dashboard to create the necessary tables:
poststable with columns: id, user_id, name, user_name, user_image, text, image, created_at, timestamplikestable with columns: id, post_id, user_id, user_namecommentstable with columns: id, post_id, user_id, name, user_name, user_image, text, created_at
- Set up storage bucket:
posts_images
- Run the SQL migrations in your Supabase dashboard to create the necessary tables:
-
Configure OAuth
- In Supabase Dashboard, go to Authentication > Providers
- Enable Google provider and add your Google OAuth credentials
- Set the redirect URL to:
http://localhost:3000/auth/callback(for development)
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000 and sign in with Google to start using Tweel!
- Sign in with your Google account
- Click on the input field at the top of the feed
- Type your message and optionally add an image
- Click "Post" to share with your followers
- Like: Click the heart icon on any post
- Comment: Click the comment icon to add your thoughts
- Share: Use the share button to copy the post link
- Use the sidebar to navigate between different sections
- View trending news and suggested users in the widgets panel
npm run dev- Start the development server with Turbopacknpm run build- Build the application for productionnpm run start- Start the production servernpm run lint- Run ESLint for code quality checks
src/
├── app/
│ ├── components/ # Reusable UI components
│ ├── context/ # React context providers
│ ├── auth/ # Authentication routes
│ └── posts/ # Dynamic post pages
├── store/ # Jotai state management
└── utils/ # Utility functions and Supabase clients
