Reelix
An app to discover and track movies and series, record what you have watched and share authorized activity with friends.
Technologies
- React Native
- Expo
- TypeScript
- ASP.NET Core (.NET 10)
- PostgreSQL
- Entity Framework Core
- Supabase Auth
- TMDB
Overview
Reelix is an app to discover and track movies and series, record what you have watched and share authorized activity with friends. The repository holds a React Native mobile app and an ASP.NET Core API. It is a personal project.
Challenge
A viewing diary is personal data. Sharing it with friends only works if each person controls what is shared, and comments and ratings must not spoil a plot for someone who has not watched yet. The challenge was to build social features on top of that, with privacy and spoiler control as rules of the product rather than afterthoughts.
Solution
Sharing is opt-in and split into separate consents for history, ratings and favorites. Comments are private by default, can be flagged as spoilers and stay hidden until the reader chooses to reveal them. Progress tracking, lists, achievements and a monthly ranking among friends are built on the same rules.
Architecture
The API is a modular monolith in ASP.NET Core (.NET 10), organized in Domain, Application, Infrastructure and Api projects so that business rules do not depend on frameworks or the database. Data lives in PostgreSQL through Entity Framework Core. Supabase Auth handles sign-in, and the API validates its tokens and maps them to the internal account. Movie and series metadata comes from TMDB, behind an adapter, with provider credentials kept on the server. The mobile app uses React Native with Expo, strict TypeScript, Expo Router and TanStack Query. A GitHub Actions workflow runs the backend tests, the mobile lint and type checks, dependency audits and secret scanning.
Technical decisions
A modular monolith before microservices.
The design stays simple until real usage justifies more infrastructure.
One identity system.
Supabase Auth is the only provider, and a second system such as ASP.NET Identity was deliberately not added.
Providers behind an adapter.
The catalog integration can be replaced without touching business rules, and provider keys never reach the app.
AI kept off until decided.
An automatic spoiler classifier exists on the server but is disabled by default while cost and data policy are decided; manual spoiler flagging works without it.
Current state
In development. The code covers accounts, onboarding, discovery, tracking, lists, ratings and comments, friends, notifications and achievements, but the repository itself states that this describes the implementation and does not confirm a production deployment. Remote push notifications are disabled, the Android widget is not implemented and the mobile app has no automated tests yet.








