Blossom Blog is a dynamic blogging platform where both admins and users can create, feature, and manage posts. Users can explore, save, and interact with content, while admins have additional control over featured blogs and content management. Built with the latest web technologies, Blossom Blog delivers a seamless and responsive user experience.
- ✍️ Create Blogs: Users can write and publish blogs.
- 📰 Browse Posts: Explore a variety of blogs on different topics.
- 📌 Save Posts: Save your favorite posts for easy access later.
- 🔒 User Authentication: Secure login and registration via Clerk.
- ⭐ Feature Blogs: Highlight specific blogs as featured content.
- 🗑️ Manage Content: Edit or delete blogs as needed.
- 📱 Responsive Design: Fully optimized for both desktop and mobile devices.
- 🔐 Secure API: All endpoints are protected and follow modern security standards.
- 🎨 Interactive UI: Smooth animations and intuitive interactions.
- React-19: Component-based UI development.
- TailwindCSS: Rapid and modern styling.
- React Query: Server state management.
- Node.js: Server-side JavaScript runtime.
- Express.js-5: Web framework for building RESTful APIs.
- MongoDB: NoSQL database for efficient data storage.
- Clerk: Secure authentication.
- Axios: For handling HTTP requests.
- Toast Notifications: User-friendly alerts.
-
Clone the repository:
git clone https://github.com/danielace1/blossom-blog.git cd client && cd server
-
Install dependencies:
-
in client as well as in server.
npm install
-
Set up environment variables: Create a
.env
file in the both folders and add the necessary environment variables. -
Run the app:
- Start the backend server:
node --env-file .env --watch index.js
- Start the frontend:
npm run dev
- Start the backend server:
-
Access the app: Open your browser and navigate to
http://localhost:5173
.
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature/your-feature-name
- Open a pull request.
This project is licensed under the MIT License.