A YouTube clone built using React, Vite, and Appwrite for the backend.
- User Authentication (Sign up, Sign in, Sign out)
- Video Uploading
- Video Browsing & Searching
- Video Playback
- User Profiles
- Liking/Disliking Videos (Optional)
- Comments (Optional)
- Frontend: React, React Router, Vite
- Backend: Appwrite (Cloud or Self-Hosted)
- Styling: CSS (or choose a library like Tailwind CSS later)
- Clone the repository:
git clone <repository-url> cd react-appwrite-youtube-clone
- Install dependencies:
npm install
- Configure Appwrite:
- Create an Appwrite project (cloud.appwrite.io or self-hosted).
- Create the necessary Database, Collections (Users, Videos), and Storage Bucket.
- Update the placeholder IDs in
src/lib/appwriteConfig.jswith your actual Appwrite Project ID, Endpoint, Database ID, Collection IDs, and Storage Bucket ID. Consider using environment variables (.env) for security.
- Run the development server:
npm run dev
- Open your browser to the specified local URL (usually
http://localhost:5173).
You need to configure the following in your Appwrite project:
- Authentication: Enable Email/Password or other providers as needed.
- Database:
- Create a Database (e.g.,
youtube_clone_db). - Create Collections:
users(Store additional user info like profile picture URL, name). Define attributes and permissions.videos(Store video title, description, uploader ID, video file ID, thumbnail ID, etc.). Define attributes and permissions.
- Create a Database (e.g.,
- Storage:
- Create a Bucket (e.g.,
videos) to store video files and thumbnails. Configure file size limits and permissions.
- Create a Bucket (e.g.,
- Functions (Optional): If custom server-side logic is needed later (e.g., video processing), create functions in the
functionsdirectory and deploy them via the Appwrite CLI.
Contributions are welcome! Please follow standard Git workflow (fork, branch, pull request).