All apps
Sinepia app icon

Sinepia

A membership app that turns the cinema from a one-off plan into a monthly subscription.

  • iOS
  • Android
  • 2026
  • My own product
In review Website

Screenshots

Click an image to enlarge it.

About the app

Going to the cinema is a one-off decision today: buy a ticket, queue up, plan ahead. Sinepia flips that around and aims to turn cinema into a habit. You have a monthly membership; morning, noon or evening, you sit down in front of the screen whenever you feel like it.

The membership works in two ways. On the unlimited plan a new entry credit unlocks roughly every four hours — so instead of counting a fixed quota across the month, your entitlement renews over time. Anyone who prefers flexibility can spend from a credit pack instead. Every format is covered, including IMAX, 4DX, ScreenX and Gold Class, and a membership can be shared by up to three people under a single plan.

Technically, the real design problem here is entitlement management. A credit that renews over time, a credit that gets consumed, and a shared plan all run at once; whichever of them covers an entry is the one that gets deducted. When a credit unlocks depends on server time, not the device clock — moving your phone's date forward does not earn you new credits. A second entry to the same screening, refunding an unused credit and abuse on a shared plan are all handled in this layer as well.

At the box office it works with a single-use QR code: you open the entry code in the app and have it scanned at the counter. Paperless, fast, contactless. On top of that there is a discount of up to 15% at the concession stand based on membership tier, used for popcorn and drinks before the screening.

Sinepia is currently preparing for launch; the cinema network will open together with founding partners. After cinema, the roadmap also includes theatre tickets.

Key features

  • Unlimited membership: an entry credit that renews roughly every four hours
  • Credit pack: a flexible pay-as-you-go option instead of a subscription
  • All formats: including IMAX, 4DX, ScreenX and Gold Class
  • Shared plan: up to three people under a single membership
  • QR entry at the box office: paperless, single-use and contactless entry
  • Concession discount: up to 15% based on membership tier
  • Partner cinema and film discovery: finding the nearest venue and what is showing
  • Server-time entitlement management: credit renewal independent of the device clock
  • Roadmap: theatre tickets after cinema

Technologies used

105 technologies · 12 categories

Languages and Platform

  • Dart
  • Flutter
  • Single codebase, two platforms
  • iOS and Android releases
  • Material and Cupertino design languages
  • Handling platform differences

UI and Application Layer

  • Widget tree architecture
  • Stateless / Stateful widgets
  • State management
  • MediaQuery / LayoutBuilder
  • Navigator and route management
  • Theming and design system
  • Virtualisation with ListView.builder
  • Custom animations and transitions

Backend and Data

  • Firebase Firestore
  • Firebase Authentication
  • Firebase Storage
  • Cloud Functions
  • Firestore security rules
  • NoSQL data modelling
  • Firestore transactions
  • Composite index design
  • Firestore offline cache
  • Batch writes
  • Cursor-based pagination
  • Denormalisation
  • Counter fields
  • Cloud Functions triggers
  • Scheduled jobs

Membership, Entitlements and QR Validation

  • Server-time entitlement renewal
  • Subscription state machine
  • Credit balance ledger
  • Shared plan authorisation
  • Single-use QR generation
  • Server-side QR validation
  • Time-limited code validity
  • Discount rules by membership tier

Payments and Revenue

  • iyzico payment integration
  • Subscription product configuration
  • Server-side payment verification
  • Renewal and cancellation handling
  • Credit pack sales
  • Authorisation based on subscription status

Discovery and Notifications

  • Location services (Flutter plugin)
  • Nearby venue queries
  • Film and showtime listings
  • Firebase Cloud Messaging
  • APNs (iOS)
  • Date, time and currency formatting
  • Countdown and timer UI

Async and Architecture

  • Future / async-await
  • Stream and StreamBuilder
  • Heavy work in Isolates
  • MVVM
  • Repository layer
  • Service layer separation
  • Error handling and retries
  • Environment separation (dev / prod)

Networking and Data Transfer

  • HTTP client
  • JSON serialisation
  • Retry and timeout handling
  • Offline state handling
  • Image caching
  • File upload progress
  • Connectivity state listening

Security and Privacy

  • Secure local storage
  • HTTPS
  • Auth token management
  • Session refresh
  • Permission rationale strings
  • Account deletion flow
  • Server-side authorisation checks

UI States and Accessibility

  • Dark theme (ThemeData)
  • Text scaling
  • SafeArea
  • Empty / loading / error states
  • Skeleton loading
  • RefreshIndicator
  • Keyboard and focus management
  • Deep linking
  • Accessibility with Semantics

Testing, Debugging and Profiling

  • Widget Inspector
  • Performance overlay
  • Memory profiling
  • Console and Logcat
  • Testing on real devices
  • Testing across screen sizes

Tooling and Release Process

  • Flutter SDK
  • Dart DevTools
  • pub / pubspec dependency management
  • Xcode (iOS builds and signing)
  • Android Studio
  • CocoaPods (iOS plugins)
  • Gradle (Android builds)
  • Git
  • App Store Connect
  • Google Play Console
  • TestFlight
  • Play Console internal testing
  • flutter build ipa / appbundle
  • Version and build numbering
  • Signing and provisioning profiles
  • App Store review process
  • App Privacy / Data Safety form
  • App store graphics and ASO copy
Solo work

Idea, design, UI, code, app store release and post-release maintenance — I ran the entire process end to end on my own. No team, no agency, no outsourcing.

Development notes

  • Languages and approachBuilt with Flutter and Dart, shipping to iOS and Android from a single codebase. I have been writing mobile apps since 2020; until then I wrote my apps natively and separately in Swift, Java and Kotlin. In 2026 I moved to a single codebase.
  • StatusThe app is in app store review; development and release preparations are ongoing.
  • DependenciesA large number of open-source packages from the Flutter plugin ecosystem are in use; dependencies are managed with pub, and the platform-side builds with CocoaPods and Gradle.
  • Entitlement managementA credit that renews over time, a credit that gets consumed and a plan shared by up to three people all run at once; credit renewal looks at server time, not the device clock.
  • Testing and debuggingTested on real devices, across different screen sizes and under poor network conditions.
  • Release preparationApp Store Connect and Google Play Console setup, the privacy declaration, store graphics and the review process are all handled by me alone.
  • Product ownershipIdea, design, development, brand identity, website and marketing — the entire process is mine.

Let's talk about Sinepia

I would be glad to walk you through the technical details, the problems I ran into and how I solved them.