A full-featured, mobile-first Instagram Clone built using React.js, Firebase, MongoDB, Tailwind CSS, Socket.io, and Express.js. It replicates the core features of Instagram, including image posting, commenting, real-time chat, and both email and phone authentication, all within a clean, responsive UI.
While features like real-time messaging using Socket.io are part of future updates, this project represents more than just a clone. It is a personal journey and a foundation for building my own unique social media platform inspired by Instagram. Over time, I aim to transform this into a fully customized application and website that reflects my individual creativity, ideas, and innovations.
If anyone is interested in contributing or collaborating on this project, feel free to reach out - I'd be happy to welcome meaningful contributions that align with the project's goals.
๐ Live Website
๐ Deployed with: Vercel (Frontend) & Railway.com (Backend)
- Email & password registration/login
- Phone number OTP login (In Update) (In Update)
- Email verification after signup (In Update)
- Protected routes (auto-redirect for unauthorized users)
- Upload image with caption
- Like/unlike posts
- Add/delete comments (In Update)
- Delete your own posts (In Update)
- Fully responsive feed
- View personal profile and all uploaded posts (In Update)
- View other usersโ public profiles (In Future update Private Profiles)
- Optional (Follow/Unfollow system โ to be added)
- One-to-one messaging system
- Live message updates
- Chat history stored in MongoDB
- Displays selected userโs name at top of chat window
- Scrollable, timestamped messages
- Typing indicator
- Tailwind CSS for beautiful, responsive design
- Mobile-first layout, desktop optimized
- Framer Motion for subtle animations
| Technology | Purpose |
|---|---|
| React.js | Frontend |
| Tailwind CSS | Styling |
| JWT Auth | Authentication |
| MongoDB + Mongoose | Database |
| Express.js | Backend APIs |
| Cloudinary | For Storing Images |
| Socket.io in Future | Real-time messaging |
| Framer Motion | Animations |
| Vercel/Railway.com | Deployment |
.
โโโ instagram-clone/
โ โโโ backend/
โ โ โโโ middleware/
โ โ โ โโโ requireLogin.js
โ โ โโโ models/
โ โ โ โโโ model.js
โ โ โ โโโ profileModel.js
โ โ โ โโโ userPost.js
โ โ โโโ node_modules/ # Backend dependencies
โ โ โโโ routes/
โ โ โ โโโ auth.js
โ โ โ โโโ createPost.js
โ โ โ โโโ profile.js
โ โ โโโ .env # Backend specific .env
โ โ โโโ app.js
โ โ โโโ package-lock.json # Backend specific lock file
โ โ โโโ package.json # Backend specific package.json
โ โ
โ โโโ frontend/
โ โ โโโ node_modules/ # Frontend dependencies
โ โ โโโ public/
โ โ โ โโโ vite.svg
โ โ โโโ src/
โ โ โโโ components/
โ โ โ โโโ ExplorePage/
โ โ โ โโโ HomePage/
โ โ โ โโโ Loaders/
โ โ โ โโโ Logout/
โ โ โ โโโ MessagePage/
โ โ โ โโโ NotificationPage/
โ โ โ โโโ Reels/
โ โ โ โโโ UserProfilePage/
โ โ โ โโโ UserSearch/
โ โ โ โโโ UserUpload/
โ โ โ โโโ Error404.jsx
โ โ โ โโโ LoginForm.jsx
โ โ โ โโโ ProtectedRoute.jsx
โ โ โ โโโ SignUpForm.jsx
โ โ โโโ Data/
โ โ โ โโโ dataButtons.js
โ โ โโโ img/
โ โ โ โโโ Error404
โ โ โ โโโ LoginPage
โ โ โ โโโ InstargamSquare.png
โ โ โ โโโ noImageProfile.jpg
โ โ โโโ pages/
โ โ โ โโโ LoginPage.jsx
โ โ โ โโโ MainPage.jsx
โ โ โโโ utils/
โ โ โ โโโ config.js
โ โ โโโ App.jsx
โ โ โโโ index.css
โ โ โโโ main.jsx
โ โ โโโ .env # Frontend specific .env
โ โ โโโ eslint.config.js
โ โ โโโ index.html
โ โ โโโ package-lock.json # Frontend specific lock file
โ โ โโโ package.json # Frontend specific package.json
โ โ โโโ postcss.config.js
โ โ โโโ tailwind.config.js
โ โ โโโ vercel.json
โ โ โโโ vite.config.js
โ โ
โ โโโ .gitignore # Root .gitignore for the monorepo
โ โโโ README.md # Main README for the entire project
git clone https://github.com/Dhirajbhavsar9900/InstagramClone
cd InstagramClone
npm installVITE_BACKEND_URL = Your Backend LocalHost URl
VITE_CLOUDINARY_CLOUD_NAME= Your Couldinary CouldName
VITE_CLOUDINARY_UPLOAD_PRESET= Your Cloudinary Upload_Preset
npm run devcd backend
npm installJWT_SECRET = Generate Your Own JWT_TOKEN
MONGO_URI = Your MONGO.DB Url
PORT = Your Backend PORT example : (5000)
FRONTEND_URL = Your Frontend LocalHost Url
npm run devFollow/Unfollow system
Search User
User Login Email Alert
Realtime Chating System
Dhiraj.jsx Connect Me On Instagram
DhirajBhavsar9900 Connect Me On ๐ฅ GitHub

.png)