Built a clean movie/TV discovery app using Convex + Next.js 🎬
Hey everyone! 👋
I’ve been working on a small side project called MediaFlix — a clean, minimal site to discover movies & TV shows. Sharing here because Convex powers the backend.
🔧 Tech Stack
Convex (data + real-time)
Next.js 15 (App Router)
Clerk (auth)
TMDB API
TailwindCSS + shadcn/ui
Vercel hosting
⭐ Convex Features I’m Using
Watchlist system
Tables: watchlist, userProfiles
Indexes: by_user_id, by_user_and_media, by_username
Mutations: toggleWatchlist, clearWatchlist
Queries: isInWatchlist, getWatchlist, getWatchlistCounts
UI with useMutation, useQuery, usePaginatedQuery
Profile system
getUserProfile, upsertUserProfile
Username flow: isUsernameAvailable, updateUsername, generateUsername
Profile completion: markProfileComplete
Avatar uploads (Convex storage)
generateUploadUrl, getAvatarUrl, getFileUrl
Upload → store URL → save to profile
Auth integration (Convex + Clerk)
ConvexProviderWithClerk client setup
Server profile check via ConvexHttpClient
Gated pages using Authenticated & AuthLoading
Real-time updates
Watchlists and profiles sync instantly across devices out of the box
🎯 Live Site
https://mediaflix.digital
📦 Open Source Repo
https://github.com/lukef7fywmrp/mediaflix
Would love feedback on my Convex schema, queries/mutations, or overall architecture! 🙌
MediaFlix
A modern movie and TV show discovery app
GitHub
GitHub - lukef7fywmrp/mediaflix
Contribute to lukef7fywmrp/mediaflix development by creating an account on GitHub.
0 Replies