A modern social media platform built with the MERN stack, featuring authentication, stories, messaging, posts, profile management, connections, and real-time experiences.
- 🚀 Overview
- ✨ Features
- 🖼 Screenshots
- 🛠 Tech Stack
- 📁 Project Structure
- ⚙️ Environment Variables
- 🚀 Getting Started
- 📡 API Summary
- 🌐 Deployment
- 🤝 Contributing
- ⭐ Support
SparkLink is a full-stack social media application built using the MERN Stack, equipped with:
- Real-time messaging
- Stories & viewer
- Post feed with images
- Authentication (Clerk)
- Media CDN (ImageKit)
- Background jobs (Inngest)
- Connections / Follow system
It is built for learning, scaling, and production-ready deployment.
- Signup / Login / Logout
- Protected routes
- Middleware-secured API
- Chat UI
- Recent messages panel
- Smart notification popups
- Create post (text + image)
- Feed algorithm
- Post card components
- Story upload modal
- Story viewer
- Auto-expiry
- Follow / Unfollow
- Pending requests
- Discover page with suggestions
- Fast optimized CDN
- Automatic compression
- Upload via Multer
- Webhooks
- Notifications
- Scheduled tasks
Replace these links with your real images later.
| Feed | Messaging | Profile |
|---|---|---|
sparklink/
│
├── client/
│ ├── public/
│ ├── src/
│ │ ├── api/
│ │ ├── app/
│ │ ├── assets/
│ │ ├── components/
│ │ ├── features/
│ │ ├── pages/
│ │ ├── index.css
│ │ ├── main.jsx
│ │ └── vite.config.js
│ ├── package.json
│ └── vercel.json
│
└── server/
├── configs/
├── controllers/
├── inngest/
├── middlewares/
├── models/
├── routes/
├── utils/
├── server.js
├── package.json
└── vercel.json
PORT=5000
MONGO_URI=your_mongodb_uri
CLERK_SECRET_KEY=your_clerk_secret_key
IMAGEKIT_PUBLIC_KEY=your_public
IMAGEKIT_PRIVATE_KEY=your_private
IMAGEKIT_URL_ENDPOINT=your_url
INNGEST_EVENT_KEY=your_key
EMAIL_USER=your_email
EMAIL_PASS=your_pass
VITE_CLERK_PUBLISHABLE_KEY=your_key
VITE_API_URL=[http://localhost:5000](http://localhost:5000)
git clone https://github.com/<your-username>/sparklink.gitcd client
npm installcd server
npm installnpm run servernpm run devmiddlewares/auth.js
POST /api/user/create
GET /api/user/profile/:id
PUT /api/user/update
POST /api/post/create
GET /api/post/feed
GET /api/post/:id
POST /api/story/create
GET /api/story/all
POST /api/message/send
GET /api/message/list/:userId
- Vercel (recommended)
- Render
- Railway
- Netlify + Server Deployment
- AWS / Azure / DigitalOcean
Each folder includes its own:
vercel.json
Contributions, issues, and feature requests are welcome! Feel free to open a PR or issue.
If you like this project, please ⭐ star the repo — it motivates future updates!
Made with ❤️ using MERN Stack