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