A modern blog app built with React, Vite, Appwrite, Redux Toolkit, Tailwind CSS, and TinyMCE.
MegaBlog lets users sign up, log in, create posts, edit posts, upload featured images, browse published content, and manage their profile in a cleaner editorial-style interface.
- Authentication with Appwrite
- Rich text post editor with TinyMCE
- Create, edit, and delete blog posts
- Featured image upload with Appwrite Storage
- Protected routes for authenticated actions
- Responsive UI with desktop and mobile navigation
- Profile page for signed-in users
- Home page post listing with pagination
- React
- Vite
- React Router
- Redux Toolkit
- React Hook Form
- Tailwind CSS
- Appwrite
- TinyMCE
- React Icons
git clone <your-repo-url>
cd mega-blognpm installCreate a .env file in the project root and add:
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
VITE_TINYMCE_API_KEY=your_tinymce_api_keynpm run devnpm run buildnpm run lintThis project expects:
- one Appwrite project
- one database
- one collection for posts
- one storage bucket for featured images
Your posts collection should support fields similar to:
titlecontentfeaturedImagestatususerIdcreatedAt
Make sure your Appwrite permissions allow authenticated users to create and manage their own posts and uploaded files.
src/
appwrite/ Appwrite auth and database/storage services
components/ Shared UI components
conf/ Environment configuration mapping
pages/ Route-level pages
store/ Redux store and auth slice
/Home page with post listing and pagination/loginLogin page/signupSignup page/add-postCreate a new post/edit-post/:slugEdit an existing post/post/:slugRead a single post/profileUser profile page/aboutAbout page
- TinyMCE requires a valid API key in
VITE_TINYMCE_API_KEY. - Featured images use Appwrite Storage.
- The app uses client-side routing with protected sections for authenticated users.
This project is available for personal and educational use.