← Projects

smartTV for Browser

A smart-TV home screen that runs in your browser — boot animation, D-pad and all.

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Cloudflare Workers
Why I built it

Every streaming service has an app on the TV and a website on the laptop, and the website is always the worse one — a mouse, a cramped header, nothing you can lean back for. I wanted the TV interface on whatever screen I happened to have: the ten-foot layout, the D-pad, the boot animation, the slightly absurd ceremony of it.

How it's built

Next.js and React with geometry-based spatial navigation, so focus moves the way a remote expects rather than the way the DOM is ordered. Motion drives the boot, the focus springs and the screensaver. The only backend is a Cloudflare Durable Object per pairing code, which is how a phone becomes the remote: both ends open a WebSocket to the same room, so it works on any network with no NAT negotiation.

Features

What's inside

A real ten-foot interface

Animated power-on boot, glassy channel tiles that glow and scale on focus, a launch splash, and an ambient clock screensaver after a spell of nothing.

Driven like a remote

Arrow keys move focus by geometry, not tab order. Enter opens, Esc goes back, and an on-screen remote mirrors every key for touch.

Your phone is the remote

Scan a QR code and the phone pairs to the screen over a WebSocket room. No app to install, and it works on any network.

Your channels, your order

Add a channel, hide the ones you don't watch, reorder the grid and pick a tile size. It all persists locally between visits.

Installs like a TV OS

A proper PWA with a hand-written service worker, so it runs full-screen and offline-capable on a laptop, a tablet, or a screen in the corner of a room.

Focus you can actually see

The spatial cursor mirrors onto real DOM focus with aria-labels, and every animation honours prefers-reduced-motion.

Turn it on

Free, runs in the browser, and installs to any screen you point it at.

Open smartTV
  • browser
  • nextjs
  • react
  • smarttv
  • tv