Web

DuoWatch

Movie matching social app Tinder-style — swipe with friends, real-time matches via WebSocket and a custom recommendation engine.

Ever spent half an hour arguing about what to watch? DuoWatch fixes that. It works like Tinder but for movies and series: each user swipes independently — without seeing the other's choices — and when two friends both like the same title, the app creates a match and notifies them instantly. No negotiations, no spoilers.

Every movie or series has its own detail view: rating, release year, runtime, genres, synopsis and, when available, a direct link to the trailer. All data fetched in real time from the official TMDB API with its catalogue of over 1 million titles.

The interface is fully responsive — same seamless experience on desktop and mobile — with fluid swipe animations powered by Framer Motion.

Built from scratch as a full stack project with Next.js 15 (App Router) on the frontend and NestJS 10 on the backend, connected via REST API and real-time WebSocket (Socket.IO). PostgreSQL database managed with Prisma ORM, fully containerised with Docker Compose.

The recommendation engine is custom-built: it learns from swipes in real time, applies a ×1.5 boost to content similar to recent likes, and automatically excludes content similar to dislikes. The friend compatibility score uses Jaccard similarity over shared genres and interaction history. Auth implements JWT with 15-min access tokens, 7-day refresh tokens and automatic rotation on the client.

Real interface

Screenshots

Movie Swiping

Swipe screen — The Dark Knight

Swipe right to like, left to skip — without seeing your friend's picks.

Movie Details

Movie detail view with rating, duration and description

Rating, year, runtime, genres, synopsis and trailer link when available.

100% Responsive

Responsive landing page on mobile

Seamless experience across desktop and mobile, built with TailwindCSS.

Back to projects

Contact

Request a quote

Before you go!

Let's work together

Tell me about your project or send me your offer, no commitment.
I respond in less than 24h.

Get a free quote
Call