A modern, full-featured social media application built with Next.js 15, featuring real-time messaging, advanced post interactions, and a comprehensive user experience.
- Multi-provider Authentication: Google OAuth and email/password
- Session Management: Secure authentication with Lucia Auth
- Protected Routes: Role-based access control
- Post Creation: Rich text editor with TipTap integration
- Media Support: Image and video uploads with UploadThing
- Advanced Reactions: Multiple reaction types (Like, Love, Laugh, Wow, Sad, Angry)
- Comments System: Threaded comments on posts
- Bookmarks: Save and organize favorite posts
- User Profiles: Customizable profiles with bio and avatar
- Follow System: Follow/unfollow users
- User Recommendations: AI-powered user suggestions
- Real-time Notifications: Instant updates for interactions
- Activity Feed: Personalized "For You" and "Following" feeds
- Real-time Chat: Powered by Stream Chat
- Direct Messages: Private conversations between users
- Unread Count: Badge notifications for new messages
- Full-text Search: Find users, posts, and content
- Trending Content: Discover popular posts and users
- People You May Know: Smart user recommendations
- Dark/Light Theme: Theme switching with next-themes
- Responsive Design: Mobile-first approach with Tailwind CSS
- Infinite Scroll: Smooth content loading
- Loading States: Skeleton screens and loading indicators
- Image Cropping: Built-in image editing capabilities
- Next.js 15 - React framework with App Router
- React 19 RC - Latest React features
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible UI components
- TipTap - Rich text editor
- TanStack Query - Server state management
- Prisma - Type-safe database ORM
- PostgreSQL - Primary database
- Lucia Auth - Authentication library
- UploadThing - File upload service
- Stream Chat - Real-time messaging
- ESLint - Code linting
- Prettier - Code formatting
- TypeScript - Static type checking
- Node.js 18.17 or later
- npm or yarn
- PostgreSQL database
- Google OAuth credentials (optional)
-
Clone the repository
git clone https://github.com/VasuDevrani/not-social.git cd not-social -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Fill in the required environment variables in
.env: -
Set up the database
npx prisma generate npx prisma db push
-
Run the development server
npm run dev
-
Open your browser Navigate to localhost
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run postinstall- Generate Prisma client
Make sure to set all environment variables from .env.example in your production environment.