A developer-focused social media platform for sharing code, connecting with developers, and real-time messaging.
DevVerse is a full-stack social media application built with the MERN stack, designed specifically for developers to share posts with code snippets, follow other developers, and engage in real-time conversations with voice and video call capabilities.
- π Post Creation - Share text posts with optional images and code snippets
- π» Code Highlighting - Syntax highlighting for 25+ programming languages
- π₯ Social Interactions - Follow/unfollow developers, like and reply to posts
- π¬ Real-time Messaging - Instant messaging with Socket.io
- π Voice & Video Calls - WebRTC-powered peer-to-peer calls
- π Authentication - Multiple login options including OAuth (Google & GitHub)
- π± Responsive Design - Mobile-friendly with dark/light mode
- Customizable profile with avatar and cover photo
- User search and follow suggestions
- Real-time notifications for messages and interactions
- Code snippet sharing with syntax highlighting
| Technology | Purpose |
|---|---|
| Node.js | Runtime environment |
| Express.js | Web framework |
| MongoDB | Database |
| Mongoose | ODM |
| Socket.io | Real-time communication |
| Passport.js | OAuth authentication |
| Cloudinary | Image storage |
| JWT | Authentication |
| Technology | Purpose |
|---|---|
| React | UI library |
| Vite | Build tool |
| Chakra UI | Component library |
| Recoil | State management |
| React Router | Routing |
| Simple-Peer | WebRTC calls |
devverse/
βββ backend/ # Express.js server
β βββ config/ # Passport configuration
β βββ controllers/ # Route handlers
β βββ cron/ # Scheduled jobs
β βββ db/ # Database connection
β βββ middlewares/ # Express middleware
β βββ models/ # Mongoose schemas
β βββ routes/ # API routes
β βββ socket/ # Socket.io setup
β βββ utils/ # Helper functions
β
βββ frontend/ # React application
β βββ src/
β β βββ atoms/ # Recoil state
β β βββ components/ # Reusable components
β β βββ context/ # React context
β β βββ hooks/ # Custom hooks
β β βββ pages/ # Route pages
β βββ public/ # Static assets
β
βββ package.json # Root scripts
βββ README.md # This file
- Node.js (v18+)
- MongoDB (local or Atlas)
- npm or yarn
- Clone the repository
git clone https://github.com/yourusername/devverse.git
cd devverse- Install dependencies
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install- Environment Setup
Create a .env file in the backend directory:
# Server
PORT=5000
NODE_ENV=development
# Database
MONGO_URI=your_mongodb_connection_string
# JWT
JWT_SECRET=your_jwt_secret
SESSION_SECRET=your_session_secret
# Cloudinary
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# OAuth (Optional)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret- Run the application
# Run backend (from root)
npm run dev
# Or run separately
cd backend && npm run dev # Terminal 1
cd frontend && npm run dev # Terminal 2- Open in browser
http://localhost:5173
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/users/auth/signup |
Register user |
| POST | /api/users/auth/login |
Login user |
| GET | /api/users/me |
Get current user |
| PUT | /api/users/update |
Update profile |
| GET | /api/users/auth/google |
Google OAuth |
| GET | /api/users/auth/github |
GitHub OAuth |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/posts/feed |
Get feed posts |
| POST | /api/posts/create |
Create post |
| PUT | /api/posts/:id |
Update post |
| DELETE | /api/posts/:id |
Delete post |
| PUT | /api/posts/like/:id |
Like/unlike post |
| PUT | /api/posts/reply/:id |
Reply to post |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/messages/conversations |
Get all conversations |
| GET | /api/messages/:userId |
Get messages with user |
| POST | /api/messages/send/:userId |
Send message |
DevVerse supports posting code snippets in 25+ programming languages including:
- JavaScript, TypeScript, Python, Java, C/C++
- Go, Rust, Ruby, PHP, Swift, Kotlin
- HTML, CSS, SQL, Bash, JSON, YAML
- And many more...
- Live message delivery with Socket.io
- Online user status
- Typing indicators
- Message read receipts
- Voice and video calls (WebRTC)
- Works seamlessly on desktop, tablet, and mobile
- Dark and light mode support
- Custom Chakra UI theme with brand colors
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the ISC License.
Ishfaq Ahmad Bhat
- GitHub: @ishfaqa24
- Email: ishfaqnazir24@gmail.com
- Thanks to all contributors
- Inspired by developer communities
- Built with modern web technologies
Made with β€οΈ for developers