Case study · 2025–26

DramaPing

Follow Korean actors, find their new shows, and get notified when they are released.

A native iOS product that follows actors, maintains a living watchlist, infers taste without star ratings, and sends carefully timed release notifications.

View on the App Store
Role
Product design · iOS · Backend
Platform
SwiftUI · Supabase · APNs
Core stack
SwiftUI · Supabase · TMDB · StoreKit
01 / DramaPingDramaPing home screen showing a featured series, watchlist schedule, and recommendations
01

The product

What it is.

DramaPing helps people keep up with Korean actors they enjoy. Users follow actors instead of memorizing names, and the app connects those follows to current and upcoming shows, personal recommendations, a maintained watchlist, and release notifications.

02

Technical

Technical overview.

  • Swift + SwiftUI
  • StoreKit + APNs
  • Supabase
  • PostgreSQL
  • Edge Functions
01

iOS client

SwiftUI app with shared stores, native navigation, StoreKit subscriptions, and offline state.

02

API

Supabase Edge Functions sit between the app and TMDB, normalize data, enforce limits, and return app-specific responses.

03

Database

Postgres stores device identities, follows, library state, dismissals, cached media, credits, and notification history.

04

Discovery algorithm

Ranks shows from watched titles, manual saves, and followed actors, then adjusts for relevance, freshness, confidence, and repetition.

05

Push notifications

Scheduled jobs compare new TMDB data with stored state, classify events, remove duplicates, and send APNs in controlled batches.

06

Performance

Memory and disk caches, stale-data refreshes, bounded network work, and optimized remote-image loading keep the app responsive.

03

Highlights

Project highlights.

01

Recommendations without ratings

The algorithm learns from behavior, keeps long-term preferences, reduces repetitive results, and explains why each show was selected.

02

Notifications with specific rules

Casting, release, episode, renewal, ending, and cancellation alerts each have separate timing, deduplication, and retry behavior.

03

A reliable library model

Automatic additions, manual saves, watched titles, filters, sorting, notification settings, and subscription limits remain consistent and reversible.