All work
02Product

Retune

A television that never stopped broadcasting 2010.

Eleven channels airing right now, whether or not the tab is open. You cannot pause, scrub or pick — you can change the channel, and that is all.

Role
Design + Engineering
Year
2026
Status
In progress
Retune interface

Overview

Retune is a web television that is always mid-broadcast. Open it at four in the afternoon and a programme is already halfway through, because it has been running all day without you. There is no backend and nothing to store: what is on air is a pure function of the wall clock, so two people opening it at the same moment see the same frame. You retuned a set; you did not rewind it — retuning is the only control the app gives you.

Problem

On-demand video removed the thing that made television feel alive: you were joining something already in progress, and what you missed was gone. Rebuilding that on the web means the interface has to refuse the affordances people now expect.

Approach

Model a schedule, not a playlist. Playback position is derived from the wall clock, so tuning in mid-programme is the default rather than an edge case — and it means the app needs no backend at all, because there is no state to keep. Channel changes are deliberately lossy.

Architecture

React 19 and Vite, no server. The schedule is a pure function of current time, so every client computes the same answer independently. Two people opening it at the same moment see the same frame without anything being synchronised.

Key interactions

  • What is on air is derived from the clock — no backend, no sync
  • Eleven channels running continuously, tab open or not
  • Channel-switch transition with static and signal-lock
  • CRT scanline, bloom and chroma treatments in CSS
  • Scheduled commercial breaks and bumpers

Technical decisions

Derive the schedule instead of storing it

Making air-time a function of the clock removed the backend entirely and made multi-viewer consistency free. There is nothing to keep in sync because there is nothing being kept.

No scrub bar

Every control that lets you recover what you missed dissolves the premise. Constraints are what sell the idea, so the only control is the channel.

What I took from it

  • The strongest feature was the one I refused to build.