How GreyScreen works
GreyScreen is a streaming service. You open it on a phone, a TV or a browser, choose something to watch, and the film starts. Behind that simple sentence there are four kinds of machinery: the screens you touch, the catalogue that answers what exists, the library that stores the films, and the workshop that prepares every new title.
This page is the version without port numbers. The technical architecture has the service-by-service view; the interactive map lets you switch between them.
The cast
| Piece | What it is | What it does for you |
|---|---|---|
| You | Phone, TV or browser. | Browse without an account; sign in when you want to watch or save something. |
| The GreyScreen app | The website, the phone app and the TV app. | Show the catalogue, the trailer, the player and your plan. |
| Catalogue | The live list of films and series. | Only titles that are completely ready appear here. |
| Your account | Who you are and what your plan allows. | Decides whether playback is allowed when you press play. |
| Streaming server | The part that sends video. | Picks a quality level and keeps the picture moving as your connection changes. |
| Video library | GreyScreen's own storage. | Holds every quality of every title, from 144p to 4K, plus trailers. |
| Encoding workshop | A temporary machine that prepares uploads. | Turns one master file into all the qualities a player might need. |
| Payment providers | Stripe for cards, Flutterwave for mobile money. | Take the payment and tell GreyScreen to activate the plan. |
| GreyScreen studio | The internal back office. | Where the team adds a title, its artwork and its video files. |
Follow the map
How GreyScreen works
A guided view of what happens between the moment you open GreyScreen and the moment the video plays. Click any block to read what it does.
Click any block for a plain-language card. The map is not a static picture: you can zoom, pan, open it full screen and download it. Use Take a tour to walk browsing, watching, subscribing or publishing one step at a time.
The four journeys
Browsing does not need an account
The catalogue is public. So are the movie and series lists and every trailer page. You can open a title, read its details and play the trailer before signing in. The platform deliberately keeps the catalogue readable without identity so that search engines and first-time visitors see the product.
Watching checks two things
When you press play, the player asks for the film and the app checks that your account has an active plan. The streaming server then reads the correct quality from the library and sends it in small segments. If your connection drops, the player asks for a lower quality rather than stopping.
There is no DRM. Access control is the client-side entitlement check plus the fact that the video URL is not listed publicly. That is a known limitation, documented in Security notes.
Subscribing moves through a provider
GreyScreen never sees your card number or your mobile-money PIN. Cards go through Stripe; mobile money goes through Flutterwave. The provider handles the payment and calls GreyScreen back on a signed webhook. Only then does the subscription become active. The TV does not take payments — it tells you to pay on your phone and pair the account.
Publishing waits for readiness
An upload is not a publication. The team uploads two artwork crops, a trailer and the feature file. The artwork is converted immediately; the video is queued for the encoding workshop, which runs only while there is work. The title becomes visible only when the encoder has finished, the trailer has at least one resolution, and the artwork exists. Until then it is staged, not live.
The full sequence is in Upload to publish.
Two views of the same system
The same platform is drawn twice:
- Explained — the product view on this page and in the map. It names what a viewer sees.
- Technical — repositories, ports, protocols and key files. It is the version an engineer uses while changing a flow.
Both share the same controls and the same detail cards. On the architecture page you can switch between them, and compare them with the Mermaid diagrams generated from the same model.
What can go wrong
The honest list matters more than the marketing one:
- The test stack shares the production Firebase project. Test isolation is a deployment profile, not a separate database.
- The legacy customer endpoints (
/signup,/login, most/users/*) are not authenticated; they trust a client-supplied user ID. Do not build new features on them. - TV pairing is world-readable and writable in the Realtime Database today, and the TV applies paired account data without server verification.
- There is no DRM, and there are no automated tests gating deploys.
These are tracked, with mitigations, in Security notes.