A modern Blogging platform built with React.js and Appwrite, featuring a rich text editor and seamless state management.
BlogIt is a full-featured Blogging platform that allows users to create, edit, and share Blog posts with a rich text editing experience. The application leverages React.js for the frontend, Appwrite for backend services, and Redux for state management.
- User Authentication: Secure signup, login, and profile management
- Rich Text Editor: Advanced Blog creation with TinyMCE
- Comment System: Engage with readers through comments
- Responsive Design: Optimized for all devices
- Categories & Tags: Organize content effectively
- Social Sharing: Extend your reach with integrated sharing options
- Draft Saving: Never lose your work with automatic draft saving
- Frontend: React.js
- Backend: Appwrite (Authentication, Database, Storage, Functions)
- State Management: React Redux with Redux Toolkit
- Form Handling: React Hook Form
- Text Editor: TinyMCE
- Content Parsing: react-html-parser
- Styling: Tailwind CSS
- Node.js (v16.0.0 or higher)
- npm (v8.0.0 or higher)
- Appwrite instance (local or cloud)
-
Clone the repository:
git clone https://github.com/crucie/BlogIt.git cd BlogIt -
Install dependencies:
npm install
-
Create a
.envfile in the root directory with your Appwrite credentials:REACT_APP_APPWRITE_ENDPOINT=https://your-appwrite-endpoint REACT_APP_APPWRITE_PROJECT_ID=your-project-id REACT_APP_APPWRITE_DATABASE_ID=your-database-id REACT_APP_APPWRITE_COLLECTION_ID_POSTS=your-posts-collection-id REACT_APP_APPWRITE_COLLECTION_ID_USERS=your-users-collection-id REACT_APP_APPWRITE_STORAGE_ID=your-storage-id REACT_APP_TINYMCE_API_KEY=your-tinymce-api-key -
Start the development server:
npm run dev
BlogIt/
├── public/
├── src/
│ ├── assets/
│ ├── components/
│ │ ├── common/
│ │ ├── editor/
│ │ ├── forms/
│ │ └── layout/
│ ├── config/
│ ├── features/
│ │ ├── auth/
│ │ ├── Blog/
│ │ ├── comments/
│ │ └── user/
│ ├── pages/
│ ├── services/
│ │ └── appwrite/
│ ├── store/
│ ├── utils/
│ ├── App.jsx
│ └── main.jsx
├── .env
├── .gitignore
├── package.json
└── README.md
- Create a new project in the Appwrite console
- Set up the following collections:
posts: To store Blog postsusers: To store user profilescomments: To store post comments
- Configure appropriate permissions for collections
- Create storage bucket for Blog images
- Register for a TinyMCE API key at TinyMCE
- Add the API key to your
.envfile
- Log in to your account
- Navigate to the "New Post" page
- Enter your post title
- Use the TinyMCE editor to write and format your content
- Add tags and select a category
- Upload feature images if needed
- Save as draft or publish immediately
- View all your posts in the dashboard
- Edit, delete, or change the status of posts
- Track viewership statistics for published posts
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Amay Mishra- @kshimate - amaymishra100@gmail.com
Project Link: https://github.com/crucie/BlogIt