Popcorn Share
A social platform for movie lovers — find people with the same taste, form watch groups, chat and video-call in real time, then book real tickets together.
Visit the live site ↗
“Streaming made movie-watching solo. Deciding what to watch, watching together, and talking about it after has no good home. Popcorn Share is that home.”
The problem
The social layer around film — the group chat about what to see, the plan to go, the conversation after — is scattered across WhatsApp, Instagram and nowhere. Ticketing apps lead with the transaction, not the people.
The product
Popcorn Share leads with community. Find people who like the same films, form watch groups ("Rooms") around a specific showtime, chat with typing and read receipts, jump into a voice or video call, post in a movie-centric feed, and deep-link into BookMyShow when the group is ready. Rooms auto-complete after the showtime and prompt every member for a review.
The architecture
React 19 + Vite client (React Router 7, TanStack Query, Zustand, Tailwind, Framer Motion) talking to an Express 5 / MongoDB API over HTTP and Socket.io. Real-time DMs, presence, room events and call signalling run on sockets; WebRTC (simple-peer) carries the actual call media peer-to-peer. 15 route modules, 15 Mongoose models. One AWS EC2 box — nginx for TLS, Mongo local, pm2 for process management.
The hard problems were in the seams
Almost none of the difficult bugs were in feature logic. iOS Safari only grants camera access inside a user gesture, so media had to be captured in the click handler and handed to the call screen through a store. Socket.io room membership is per-connection, so a mobile network blip silently dropped users from their rooms and calls stopped ringing — fixed by re-joining on every reconnect. Helmet’s default COOP header blocked Google OAuth’s popup. A Vite version drift between local and server broke calls in production only. The platform’s defaults are where production breaks, not your own code.
What’s next
CI/CD to replace manual deploys, automated MongoDB backups, log rotation and disk alerting, a managed database, and code-splitting the client bundle.
Next project
Sivden Architects