All ProjectsBuilt by Babul Raj Singh
Mobile

Vishram

A HariPin Studio product →

Your personal movie companion

A Flutter movie and show tracking app with TMDB integration, Clean Architecture, BLoC/Cubit state management, and a 47-badge gamification system.

Flutter
Dart
BLoC
Vishram

Screenshots

Vishram screenshot 1
Vishram screenshot 2
Vishram screenshot 3
Vishram screenshot 4
Vishram screenshot 5

What it does

🎬

Four watchlist states

Saved, watching, done, and liked. Every movie has its place.

🏆

Badges & achievements

Unlock 47 badges as you track more movies and explore new genres.

🎭

Directors & actors

Follow your favourite directors and actors to never miss their work.

How it's built

The decisions behind Vishram that matter most: the ones that make it hold up, not just look good.

  1. 01

    Local-first library, synced to the cloud

    Watchlist, Watching, Watched and Favorites live on the device first, so your library is there even offline, and sync to Supabase when you're signed in. Signing in runs a last-write-wins merge between the two copies. Local data is namespaced per user, so guest mode and multiple accounts never mix libraries.

  2. 02

    One path to TMDB

    Every movie and person lookup goes through a single repository → data source path and comes back as Either<Failure, T>. An older parallel stack, with a second HTTP client and its own result types, was removed once it was confirmed unused. One way in keeps error handling predictable.

  3. 03

    Auth as a reusable package

    Sign-in, roles, session restore and account deletion come from multi_role_auth, a separate Flutter package HariPin maintains, rather than living inside the app. The next app gets the same auth without copy-paste.

  4. 04

    State management where it earns its keep

    Cubit handles state that's shared across screens (search results, region, theme, badge celebrations). Screens that own their state use plain StatefulWidget. Not everything needs a BLoC.

  5. 05

    Touch that feels considered

    An app-wide haptics layer gives every tappable a light tap, with distinct patterns for toggles, marking something watched, success and errors, all behind a single Settings switch.

Status

Available on Google Play for Android. Regression tests guard the bugs that have been fixed once, and releases are documented in a changelog with plain-words Play Store notes.

More projects

View all →
Sudoku

Sudoku

A Sudoku game for Android built in Godot 4: a fork of an open-source base, extended with note mode, a smart numpad, a multi-tier hint system and difficulty levels, then shipped to the Play Store.

Mobile
Godot
inIcons

inIcons

A curated icon platform for creators and developers, published on the Play Store under HariPin Studio.

Mobile
Flutter
Dart