A sleek, Netflix-inspired web app for discovering trending and popular movies. Built with React 19 + Vite 7, powered by the TMDB API, and enhanced with Appwrite for analytics and trending data.
- 🔍 Instant Movie Search – Find movies in real-time with TMDB API.
- 🔥 Trending Section – Displays top searched movies from Appwrite database.
- 🎞️ Netflix-style Cards – Smooth hover animations and star ratings.
- ⚡ Skeleton + Fade Loading – Optimized UX: skeleton grid for initial load, spinner for searches.
- 💾 Appwrite Integration – Tracks popular searches and movie stats.
- 🌙 Dark Modern UI – Tailwind 3 + DM Sans + Bebas Neue for that cinematic feel.
| Category | Tools |
|---|---|
| Framework | React 19, Vite 7 |
| Styling | TailwindCSS 4, Lucide Icons, Shadcn |
| Backend | Appwrite v1.8+ (Database + trending analytics) |
| Data Source | TMDB API |
| Utilities | react-use, clsx, class-variance-authority, sonner |
-
Clone the repository
git clone https://github.com/yourusername/movie-finder.git cd movie-finder -
Install dependencies
npm install
-
Set up environment variables
Create a
.envfile or updatesrc/lib/env.tswith your keys:export const environmentVariables = { PROJECT_ID: "your_appwrite_project_id", DATABASE_ID: "your_database_id", TABLE_ID: "your_table_id", VITE_TMDB_API_KEY: "your_tmdb_api_key", API_BASE_URL: "https://api.themoviedb.org/3", };
-
Run locally
npm run dev
Your app will be live at http://localhost:5173
-
Create a new Appwrite project.
-
Add a Database and a Table (previously Collection) with fields:
searchTerm(string)count(integer)movie_id(string)poster_url(string)title(string)vote_average,release_date,original_language
-
Generate an API Key and plug your IDs into
env.ts.
| Command | Description |
|---|---|
pnpm run dev |
Run development server |
pnpm run build |
Build for production |
src/
├─ components/
│ ├─ movie-card.tsx
│ ├─ search.tsx
│ ├─ spinner.tsx
│ ├─ movie-skeleton.tsx
│ └─ ui/
├─ lib/
│ ├─ appwrite.ts
│ ├─ env.ts
│ ├─ types.ts
├─ App.tsx
├─ main.tsx
└─ styles.css
You can deploy easily on:
- Vercel
- Netlify
- Appwrite Cloud Hosting
Make sure to set the same environment variables in your hosting platform.
| Loading State | Search Results |
|---|---|
![]() |
![]() |
- TMDB for movie data.
- Appwrite for backend services.
- Inspired by ., JavaScript Mastery,.
Feel free to modify and use this template in your own projects.


