A full-stack social blogging platform that empowers users to write blogs, share them publicly or privately, engage with other bloggers through likes, comments, and follows, and build a personalized blogging network.
- Secure user registration and login
- JWT-based authentication
- Role-based access (User/Admin)
- Protected routes for authenticated users
- Support for public and private user accounts
- Create, edit, and delete blog posts with rich text and image support
- Upload and optimize images via Cloudinary
- Like and unlike posts
- Comment system with real-time updates
- Infinite scroll feed for seamless blog discovery
- Follow/Unfollow users
- Real-time notifications (likes, comments, follows)
- Private account handling (follow request system)
- View followers and following lists
- User search with filters
- Activity feed for social interactions
- Personalized profiles with user stats (posts, followers, following)
- View own posts and activity history
- Update profile information
- Handle follow requests (accept/reject)
- Fully responsive and mobile-friendly design
- Modern UI with TailwindCSS
- Image preview before upload
- Toast notifications for user feedback
- Loading states and error boundaries
- Smooth animations and transitions
- React.js with functional components
- React Router for navigation
- Axios for API communication
- Context API for global state management
- TailwindCSS for styling
- date-fns for date formatting
- Node.js with Express.js
- MongoDB + Mongoose for database
- JWT for user authentication
- Redis for caching and real-time feeds
- Cloudinary for media storage
- Multer for image upload handling
- Bcrypt for password encryption
- Node.js v14+
- MongoDB (local or cloud instance)
- Redis server running locally or via cloud
- Cloudinary account and API credentials
- Clone the repository
git clone https://github.com/yourusername/blogbonds.git
cd blogbonds- Install backend dependencies
cd backend
npm install- Set up environment variables Create a .env file in the backend/ directory:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_secret
REDIS_URL=your_redis_url_or_localhost- Run the backend server
npm run dev- Install frontend dependencies
cd ../frontend
npm install- Start the frontend development server
npm startContributions are welcome! Please follow these steps:
- Fork the project
- Create your feature branch
git checkout -b feature/awesome-feature- Commit your changes
git commit -m 'Add some awesome feature'- Push to the branch
git push origin feature/awesome-feature- Open a pull request
- Create React App
- TailwindCSS
- MongoDB
- Express.js
- Node.js community