A simple blog app built with React, Vite, Appwrite, Redux Toolkit, and TinyMCE.
- Sign up and log in
- Create, edit, and delete posts
- Upload a featured image for a post
- View posts and download the featured image
- React + Vite
- Redux Toolkit
- React Router
- Appwrite (Auth, TablesDB, Storage)
- TinyMCE editor
- Tailwind CSS
- src/appwrite/auth.js: Appwrite authentication methods (signup, login, logout, current user)
- src/appwrite/post.js: Appwrite post and file methods (CRUD, upload, preview, download)
- src/features/: Redux slices for auth and posts
- src/pages/: Route-level pages (Home, Post, AddPost, EditPost, Login, Signup)
- src/components/: Reusable UI parts (inputs, buttons, editor, layouts)
Install dependencies:
npm installCreate a local environment file:
cp .env.sample .envOn Windows PowerShell:
Copy-Item .env.sample .envFill these values in .env:
- VITE_APPWRITE_URL
- VITE_APPWRITE_PROJECT_ID
- VITE_APPWRITE_DATABASE_ID
- VITE_APPWRITE_BUCKET_ID
- VITE_APPWRITE_TABLE_ID
- VITE_TINYMCE_API_KEY
npm run devnpm run buildOptional local preview of production build:
npm run preview- Add all VITE_ environment variables in Vercel project settings
- In Appwrite, add your deployed domain in Platforms -> Web
- In TinyMCE portal, allow your deployed domain for the API key
- npm run dev
- npm run build
- npm run preview
- npm run lint