Built a clean movie/TV discovery app using Convex + Next.js π¬
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.
Convex (data + real-time)
Next.js 15 (App Router)
Clerk (auth)
TMDB API
TailwindCSS + shadcn/ui
Vercel hosting
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
https://mediaflix.digital
https://github.com/lukef7fywmrp/mediaflix
Would love feedback on my Convex schema, queries/mutations, or overall architecture!
