A full-featured Netflix clone built with SvelteKit 2 and Svelte 5, featuring a modern UI, video playback, search, and a personal watchlist ā all powered by a real movies/TV API.
This project is a personal take on a Netflix-style streaming platform, developed while following a Udemy course but implemented from scratch with my own design decisions and architectural choices. It replicates the core Netflix experience: browsing a catalogue, viewing movie details in a modal, playing trailers, searching content, and managing a personal list.
This project was built using as a foundation the Udemy course SvelteKit Masterclass ā Build 20 Complete SvelteKit Projects.
However, the original course project was built with Svelte 4, so I took the opportunity to fully migrate and adapt it to Svelte 5, adopting the new runes-based reactivity model ($state, $derived, $effect, etc.) and updating the codebase to reflect my own design and implementation decisions.
| Technology | Purpose |
|---|---|
| SvelteKit 2 | Full-stack framework & routing |
| Svelte 5 | UI components with runes |
| TypeScript | Type safety |
| Tailwind CSS 4 | Utility-first styling |
| Plyr | Video player |
| Lucide Svelte | Icon library |
| Bun | Runtime & package manager |
| Vite | Build tool & dev server |
# Clone the repository
git clone https://github.com/Nyasper/netflix-clone-svelte.git
cd netflix-clone-svelte
# Install dependencies
bun install
Create a .env file in the root of the project and add your API key:
TMDB_API_KEY=your_tmdb_api_key_here
You can get a free API key from The Movie Database (TMDB).
bun run dev
Then open http://localhost:5173 in your browser.
bun run build
bun run start
src/
āāā lib/
ā āāā components/ # Reusable UI components (Modal, Player, Navbar, etc.)
ā āāā server/ # Server-side API helpers
ā āāā stores/ # Svelte stores (my list, etc.)
ā āāā types/ # TypeScript type definitions
ā āāā helpers.ts # Shared utility functions
āāā routes/
āāā +page.svelte # Home page
āāā search/ # Search page
āāā watch/ # Video player page
āāā myList/ # Personal watchlist page
āāā api/ # SvelteKit API endpoints
This project is open source and available under the MIT License.