A free, open-source movie and TV show discovery platform. Browse 40+ curated films, 250+ TV shows, check ratings, cast info, episode guides, and find where to stream β all in one place.
Live: kinshow.vercel.app
Blog: kinshow.vercel.app/blog
Getting the repo running locally takes about two minutes:
git clone https://github.com/kiinshuk/kinshow.git
cd kinshow
npm install
npm run dev # β http://localhost:5173Then pick an issue tagged good first issue, fork, branch, and open a PR. Full guidelines: CONTRIBUTING.md (see the label glossary if you're not sure what a label means).
Before your first PR: run
npm run buildβ it must pass. If the build dirtiessrc/data/contributors.json, restore it withgit checkout -- src/data/contributors.jsonbefore committing.
- 40+ Curated Movies β Top-rated films with ratings, cast, and streaming links
- 250+ TV Shows β Full season and episode guides from TVmaze
- Smart Search β Instant search across movies and TV shows, with clear error/retry states when an API is unreachable
- Genre Explorer β Browse by Action, Comedy, Drama, Horror, Sci-Fi, Thriller, and more
- Watchlist β Save titles to watch later (localStorage, no account needed)
- Viewing History β Track what you've watched
- Recently Viewed β Quick access to recently browsed titles
- 7 Streaming Servers β VidSrc, VidSrc3, VidSrc2, VidCore, Peachify, VidFast, CineSrc
- Episode Navigation β Previous/next episode buttons for TV shows
- Server Switching β Change servers mid-session (keyboard
1β7,sto cycle) - Keyboard Shortcuts β
/search,Ctrl/Cmd+Kcommand search,?shortcut help
- Schema.org β Movie, TVSeries, WebSite, Organization, FAQPage, BreadcrumbList, BlogPosting, VideoObject
- Open Graph & Twitter Cards β Rich social previews with article metadata on blog posts
- Pre-rendered HTML β Every static route emitted at build time
- 24hr Cache β Reduced API calls, faster load times
- Fully Responsive β Desktop, tablet, and mobile
- Light & Dark Themes β System preference detection + manual toggle (persisted)
- Cookie Consent β GDPR compliant
- Blog β Movie guides, recommendations, and lists
| Technology | Purpose |
|---|---|
| React 18 | UI Framework |
| Vite 5 | Build Tool & Dev Server |
| React Router 6 | Client-side Routing |
| React Helmet Async | SEO Meta Tags |
| TVmaze API | TV Show Data & Images |
| OMDb API | Movie Data & Posters |
| Vercel | Hosting, Analytics & CI/CD |
- Node.js 18+
- npm (or yarn/pnpm)
# Clone the repository
git clone https://github.com/kiinshuk/kinshow.git
# Navigate to project directory
cd kinshow
# Install dependencies
npm install
# Start development server
npm run devThe app will be available at http://localhost:5173
npm run buildThis runs three steps: fetches the contributor roster (prebuild), bundles with Vite, then prerenders static HTML for SEO (prerender.mjs).
npm run preview # β http://localhost:4173No environment variables required β the app uses public TVmaze/OMDb endpoints with keys that ship in the client bundle.
- TMDB is blocked on some networks β the app uses TVmaze + OMDb only; you don't need TMDB to run anything.
src/data/contributors.jsonchanges after every build β it is regenerated byprebuild. Restore it (git checkout -- src/data/contributors.json) if you don't intend to commit roster changes.- Preview runs on port 4173, dev server on 5173. If a port is busy, stop the stale process or use
vite --port <other>.
kinshow/
βββ public/
β βββ robots.txt
β βββ sitemap.xml
βββ scripts/
β βββ fetch-contributors.mjs # Regenerates contributor roster on build
βββ src/
β βββ components/
β β βββ Navbar.jsx # Navigation + search overlay
β β βββ Hero.jsx # Featured content carousel
β β βββ MediaCard.jsx # Movie/TV show card
β β βββ ContentRail.jsx # Horizontal scroll section
β β βββ CastCard.jsx # Actor profile card
β β βββ EpisodeCard.jsx # Episode list item
β β βββ CookieConsent.jsx # GDPR cookie consent
β β βββ RecentlyViewed.jsx # Recently viewed section
β β βββ ScrollButton.jsx # Back-to-top button
β β βββ Toast.jsx # Toast notifications
β β βββ EmptyState.jsx # Empty/error state views
β β βββ ErrorBoundary.jsx # Route error fallback
β β βββ Skeletons.jsx # Loading states
β β βββ SEO.jsx # SEO, Schema.org, breadcrumbs
β βββ pages/
β β βββ Home.jsx # Landing page with hero + rails
β β βββ Movies.jsx # Movie browser with tabs
β β βββ TVShows.jsx # TV show browser with tabs
β β βββ Detail.jsx # Movie/TV details + episodes
β β βββ Player.jsx # Multi-server video player
β β βββ Watchlist.jsx # User watchlist + history
β β βββ Explore.jsx # Genre explorer
β β βββ Blog.jsx # Blog listing page
β β βββ BlogPost.jsx # Blog article page
β β βββ About.jsx # About page with contributors
β β βββ Contact.jsx # Contact page
β β βββ Privacy.jsx # Privacy policy
β β βββ NotFound.jsx # 404 page
β βββ hooks/
β β βββ useInfiniteScroll.js
β βββ utils/
β β βββ poster.jsx # SVG poster generator
β β βββ cookies.js # Cookie utilities
β βββ api.js # API functions + caching
β βββ blogData.js # Blog articles
β βββ store.js # State management
β βββ index.css # Global styles
β βββ main.jsx # Entry point
βββ prerender.mjs # SEO prerender script
βββ vercel.json # Vercel SPA config
βββ CONTRIBUTING.md # Contribution guidelines
βββ LICENSE # MIT License
βββ package.json
We love contributions! Whether it's fixing a bug, adding a feature, or improving docs β all help is welcome.
Quick start:
- Fork the repo
- Create a branch:
git checkout -b fix/my-bug - Make your changes and verify
npm run buildpasses - Commit:
git commit -m "fix: description" - Push and open a PR (reference the issue:
Fixes #123)
See CONTRIBUTING.md for full guidelines.
Open issues: 300+ issues tagged good first issue are waiting β pick one that interests you.
MIT License β see LICENSE for details.
- TVmaze β TV show data and images
- OMDb API β Movie data and posters
- Vercel β Hosting and analytics
Kiinshuk β kinshuksharma2024@gmail.com
Project Link: https://github.com/kiinshuk/kinshow
If you found this project helpful, please give it a β on GitHub!