Case study
SerieMatch
A fullstack series discovery app that helps users find recommendations based on their tastes, platforms, viewing mood and personal preferences.
What I built
Key product features
Technical approach
Tech decisions
- Use a scoring algorithm instead of AI to keep recommendations explainable, predictable and easier to iterate on.
- Use thumbs-based ratings to increase or decrease recommendation scores based on user feedback.
- Use Meilisearch to provide fast catalogue search and filtering by genre, mood and platform.
- Use the TMDB API to import and enrich series data with metadata, posters and popularity signals.
- Share TypeScript and Zod schemas between frontend and backend to keep API contracts and validation consistent.
Context
SerieMatch was built as a product-focused fullstack project to make series discovery more personal than a basic catalogue. Users can create an account, complete a preference questionnaire, browse a searchable catalogue and build a personal library around what they want to watch, have already seen or are not interested in.
Architecture
The application uses Next.js for the frontend, NestJS for the API, Prisma with PostgreSQL for persistence, Meilisearch for catalogue search, and the TMDB API to enrich series data. Shared TypeScript and Zod schemas keep validation and data contracts consistent across the stack.
Challenges
The main challenge was designing a recommendation flow without relying on AI: user preferences, platform choices, moods, genres and personal ratings all need to influence the recommendation score in a predictable and maintainable way.
Outcome
The result is a structured fullstack application with authentication, preference onboarding, catalogue search, personal library management and a scoring-based recommendation system that improves as the user rates series.