🔗 Live Demo: https://we-tube-sage.vercel.app/
WeTube is a responsive frontend practice project inspired by YouTube, built using HTML, Tailwind CSS, DaisyUI, and Vanilla JavaScript.
The application allows users to:
- Browse videos by category
- Search videos by title
- Sort videos by view count
- Open a dedicated watch page for each video
This project focuses heavily on DOM manipulation, API integration, responsive UI design, state handling, and clean JavaScript logic—without using any frameworks.
⚠️ Note: The API used provides video metadata only, not real video streams.
Therefore, actual video playback is simulated using a blurred thumbnail and overlay message.
- HTML5
- Tailwind CSS (CDN)
- DaisyUI
- Vanilla JavaScript (DOM Manipulation & Fetch API)
- Mobile-first responsive design
- Flexbox & CSS Grid layouts
- Conditional rendering with JavaScript
- API data fetching and state management
- Reusable helper functions
- Graceful UI fallback for unavailable features
- Clean, readable, and maintainable code structure
- Fetch videos from external API
- Display thumbnail, title, author, and views
- Dedicated Watch page for each video
- Desktop: Horizontal category buttons
- Mobile: Category dropdown menu
- Category-wise video filtering
- “All” category selected by default on first load
- Real-time search by video title
- Sort videos by view count
- Mobile, tablet, and desktop friendly layout
- Adaptive grid system for video cards
- Touch-friendly buttons and dropdowns
- Separate
video.htmlpage - Blurred thumbnail used as background
- Overlay message for unavailable video playback
- Video details: title, author, views, description
- Back navigation to home page
- Stacked header layout
- Category dropdown instead of buttons
- Single-column video grid
- Two-column video grid
- Improved spacing and readability
- Horizontal category navigation
- Multi-column video grid (up to 4 columns)
- Full search and sort controls
WeTube/
├── assets/
│ ├── Logo.png
│ └── Icon.png
├── script/
│ └── index.js
├── index.html
├── video.html
└── README.md
- Clone or download the repository
- Open
index.htmlin your browser
or
- Visit the live demo using the link above
This project was built to practice and understand:
- JavaScript DOM manipulation
- Fetch API & async data handling
- Handling UI state (active category, sorting, search)
- Responsive design using Tailwind CSS
- Mobile UX patterns (dropdown navigation)
- Graceful handling of API limitations
- Writing clean, structured Vanilla JS
- Frontend-only practice project
- No backend or database is used
- Built entirely with Vanilla JavaScript (no JS frameworks)
- Uses an external public API for video metadata
- The API provides only video metadata (title, thumbnail, views, description)
- Real video playback is not available due to API limitations
- A blurred thumbnail with overlay message is used as a graceful UI fallback
- Intended for learning purposes and portfolio demonstration
- Integrate YouTube Data API for real video playback
- Add pagination or infinite scrolling
- Improve loading experience using skeleton loaders
- Persist last selected category using
localStorage - Enhance accessibility (ARIA roles, keyboard navigation)
- Refactor JavaScript into ES modules
💡 Learning-by-Doing Project
📌 DOM & API Focused
🚀 Step Toward Real-World Frontend Development