UBlog is a modern, responsive blogging platform built with React and Appwrite. It enables users to create, manage and share their thoughts seamlessly. The platform features a rich text editor and also image upload support. Designed with a focus on user experience, UBlog ensures that content creators can easily publish posts and manage their blogs.
- Rich Text Editor: Craft beautiful posts with an intuitive WYSIWYG editor.
- Image Upload: Easily upload and manage featured images for each post.
- User Authentication: Secure login and registration with Appwrite’s authentication system.
- Form Handling: Simplified form management using React Hook Form.
- Responsive Design: Fully responsive layout for optimal viewing on any device.
- Frontend: React, Tailwind CSS
- Backend: Appwrite for user authentication and file storage
- Form Management: React Hook Form
- State Management: Redux Toolkit
- Routing: React Router
- Node.js
- npm
- Appwrite account for backend services
This project uses Appwrite for authentication, database management, and file storage. Follow these steps to set up Appwrite for this project:
- Log in with your Appwrite account.
- Create a new project and note down the Project ID.
- Navigate to the Auth section of your project.
- Enable Email/Password Authentication in the settings for user registration and login.
-
Go to the Database section.
-
Create a collection named
articles. -
Add the following attributes:
title(string)content(string)featuredImage(string) - for storing the uploaded image file IDsstatus(string)userId(string) - to associate posts with users
-
From the
articlescollection, go to the "Settings" > "Permissions" > " + Add role" and select "All users". Give this user type "Create", "Read", "Update" and "Delete" permissions.
- Go to the Storage section.
- Create a new bucket for file uploads named
images. - Ensure that authenticated users have permission to upload and delete files.
npm install appwrite-
Clone the repository:
git clone https://github.com/emon5369/blogsite cd blogsite -
Install dependencies:
npm install
-
Set up environment variables:
-
Create a
.envfile in the root directory. -
Add the following environment variables:
VITE_APPWRITE_URL= <Your Appwrite endpoint> VITE_APPWRITE_PROJECT_ID= <Your Appwrite project ID> VITE_APPWRITE_DATABASE_ID= <Your Appwrite database ID> VITE_APPWRITE_COLLECTION_ID= <Your Appwrite collection ID> VITE_APPWRITE_BUCKET_ID= <Your Appwrite bucket ID>
Replace the placeholder values with your actual Appwrite project details.
-
-
Run the development server:
npm run dev
The app should now be running at http://localhost:5173.
Check out the live demo of UBlog: Click here
Demo Credentials:
- Email: test@test.com
- Password: 12345678
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue to discuss improvements or bug fixes.