CLIENT: Mvule Ridge Media🇰🇪Kenya

Pazia - Streaming Operator Console for East African Films and Series

Subscription Streaming for a Nairobi Media Company

Designed and built a clickable operator console for a Nairobi streaming service that sells local films, series and documentaries in Kenya, Uganda, Tanzania and Rwanda: a catalogue that only publishes ready, licensed titles, an encoding and DRM pipeline with plain-language errors, and M-Pesa reconciliation with suggested matches.

Scope of Work
Product design, UI build and clickable demo
Industry
Media / Video Streaming (OTT)
Enterprise
Compliance & Certifications
Kenya Data Protection Act 2019Films and Stage Plays Act (KFCB)Consumer Protection Act 2012KRA eTIMS

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, content library, title editor with 7 tabs, encoding and DRM jobs, and reconciliation. Every one of the 24 demo titles opens its own editor.

8 Checks
Before a title can publish

English and Kiswahili metadata, poster, backdrop, DRM renditions, a subtitle track, a rating and a licence window. Publish stays disabled until all pass and a window is open or scheduled.

12 Breaks
On one M-Pesa statement

6 payments in the provider only, 3 in Pazia only and 3 amount mismatches next to 4,118 matched lines. The day can only be closed and locked once every break is resolved.

24 Titles
Realistic demo data

9 films, 10 series and 5 documentaries from 6 licensors across 4 territories, with 18 pipeline jobs, 14 subscriber accounts and 4 payment statement sources.

The Problem

Mvule Ridge Media started by selling film rentals through a WhatsApp line and a Paybill number, then moved to a white-label video app that had no idea what a rights window was. Titles stayed live in Uganda after the Uganda licence had ended, kids could open any film because profiles had no PIN, and finance matched M-Pesa statements to subscriptions by hand in a spreadsheet every Monday. Nobody could say which titles kept people subscribed.

Our Solution

Pazia is the subscription service and the operator console behind it. The console only publishes a title when it is ready and licensed, works out where each title may be live from its licence windows, follows every source file through encoding, DRM and QC, and matches mobile money statements to subscriptions with suggested matches for every break.

The Challenge: Streaming Across Four Markets

Pazia streams to Kenya, Uganda, Tanzania and Rwanda, mostly to phones on patchy data and mostly paid by mobile money. Every title carries its own licence terms per country, and the viewers include children.

Rights That Change by Country and Date

A licence sets the territories, start and end dates, exclusivity, downloads and holdbacks for each title. A title may only stream where and when its licence allows, and the old app kept titles live after a window had closed.

Ratings and Kids Profiles

Films in Kenya are classified by the KFCB under the Films and Stage Plays Act, and how far that reaches streaming has been debated. Ratings still have to decide what kids profiles see and when a PIN is asked for.

Mobile Money That Does Not Match

Viewers pay by M-Pesa prompt, Paybill, Airtel Money, card or airtime. Paybill payments arrive with a wrong account reference, prompts time out after the money moves, and "I paid but it says I haven't" was a top support complaint.

Studio DRM on Phone Data

Licensors expect Widevine, FairPlay or PlayReady, a cap on concurrent streams and limits on downloads. Every film and episode has to be encoded into a ladder from 240p up, packaged, protected and checked before a viewer on a slow connection can press play.

Our Approach: From Streaming Rules to a Clickable Console

01

Spec and Rules Research

Mapped 13 user roles, 45 screens (17 viewer app screens for web, Android, iOS and smart TV, and 28 console screens) and the data model for titles, episodes, licences and windows, assets, pipeline jobs, ratings, plans, subscriptions, payments and provider statements. Wrote down the rules the design follows: the Kenya Data Protection Act 2019, KFCB classification, the Consumer Protection Act 2012, VAT and KRA eTIMS invoices, licence windows, studio DRM and an audit of every change.

02

Clickable Demo on a Production UI Kit

Built 5 key console screens on a production dashboard kit: the dashboard with 5 KPIs, subscribers by plan and territory, plays per hour against last week and a needs attention list; the content library with readiness filters and bulk publish; the title editor with metadata, episodes, renditions, rights, rating, availability and activity; encoding and DRM jobs with a job log panel; and reconciliation. A territory filter in the top bar narrows the dashboard and the library. All actions run on local state.

03

What a Production Build Adds

Integration with M-Pesa Daraja and Airtel Money, a card provider such as Paystack, a carrier billing aggregator, KRA eTIMS, Africa's Talking SMS, an encoder such as Mux or AWS Elemental MediaConvert, multi-DRM licensing, a CDN and playback analytics. Staff roles with two-factor sign-in, an append-only audit log, and the remaining screens: the viewer apps, licences, age ratings, rails, plans, subscribers, payments, sharing signals, support, privacy requests, analytics and settings.

Why It Works: Nothing Goes Live by Accident

Publish Only When Ready

Each title carries a readiness score such as "8 of 8 ready" with the checklist beside the editor. A missing Kiswahili synopsis, rating or DRM rendition keeps Publish disabled, and the screen says what unlocks it.

Availability Is Worked Out, Not Typed

The availability tab shows each territory with the reason a title is or is not live there: no window, window ended, no rating, not encoded, not published or scheduled. The dashboard counts titles live outside their window, which should always be zero.

Every Break Comes With a Suggestion

An unmatched Paybill line shows the likely payment by phone, amount and time, for example "same phone, same amount, 32 seconds apart". Staff accept the match, match by hand, credit the account or raise a query with the provider.

Pipeline Errors in Plain Words

Failed jobs say what went wrong and what to do, such as an audio track 23 ms shorter than the video. The job log shows each stage, the DRM key id, CDN path, renditions and QC results, with retry, re-encode and mark QC passed.

Related case studies

View all: Media & creators
Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab