Client work · 2025
PLAY Films
A film studio's reel, without the buffering.
- Role
- Build and delivery, with the project's designer
- Timeline
- Two months
- Status
- Live
- Year
- 2025

01 / The problem
The problem
A film studio's website has one job: play the reel. PLAY Films' work is shot and graded to a standard that a compressed, stuttering embed undersells. And the people who matter most, producers and brand clients, are often watching on a phone between meetings.
So the brief was a site that could carry full-bleed video without the two failures that usually follow it: a first load that takes eight seconds, and a hosting bill that creeps up every month until someone asks what it is for.
02 / What I built
What I built
A statically generated Next.js site with a custom video player instead of a third-party embed, so playback controls, poster frames and preload behaviour are all tuned by hand.
Video is served from a dedicated streaming CDN with adaptive bitrate, which is what keeps a reel watchable on mobile data. The pages themselves are static HTML served from the edge, so the rest of the site stays quick around all that video.
The interaction detail people notice is a spotlight that follows the cursor across the hero. It is built from CSS custom properties, one mousemove listener and mix-blend-mode, with no animation library, and it is desktop-only by design. On a touchscreen there is no cursor to follow, so phones never download that code.
03 / Who else is on it
Who else is on it
A film studio has opinions about how its own work should look, and it should. The visual direction sits with the designer on the project. I build to their calls and flag the places where a layout will fight the browser or cost a second of load time, and we settle it between us. The loop is short enough to happen in a message rather than a meeting, which is most of why it works.
The other half of the job has nothing to do with code. The studio's own domain needed sorting out, which meant emails back and forth with more than one hosting provider until it was answering again. No commits, no deploys, just someone following it up. Hardly glamorous, but a client should never have to chase that themselves.
04 / Delivery and handover
Delivery and handover
Running cost was a design constraint from the first conversation. The target was roughly SGD $28 a month, and the combination of static hosting with metered video streaming is what makes a number that small achievable for a site built around video.
Account ownership is written into the arrangement from the start: the deployment, the domain and the credentials are set up to transfer into the client's name, so nobody needs me in order to keep their own website online. On this project the site is live and the transfer has not been completed yet.
Stack
- 01Next.js (App Router), statically generated
- 02Bunny Stream for adaptive-bitrate video
- 03Tailwind CSS
- 04Vercel hosting