DEV Community

John Wilson
John Wilson

Posted on Originally published at vuthis.com

Screen sharing without screen mirroring: a phone-controlled TV display built on WebSockets and a QR code

Every meeting room, classroom and church hall has a screen, and every screen has a browser. Yet putting one thing on that screen, a PDF, a few photos, a countdown timer, still means hunting for an HDMI cable or mirroring your whole phone to the room, notifications included.

I built V U This to fix that with the smallest possible stack. Here is how it works and what I learned.

The idea: the screen is a dumb client, the phone is the remote

Open vuthis.com on any TV, projector laptop or Raspberry Pi. The page creates a display session and shows a QR code that encodes the full controller URL, plus a short code as a fallback. Scan it with a phone and the phone becomes the remote. Whatever you pick on the phone, the screen shows: a photo slideshow, a PDF with page controls, large text, an announcement, a clock in any time zone, a countdown / count-up / count-to timer, a tally counter or a Wi-Fi QR code.

Only the chosen content ever reaches the screen. That is the whole point: it is screen sharing without screen mirroring.

Why a browser and not an app

  • Every smart TV, Chromecast (browser mode), Fire TV (Silk), signage player and projector laptop already has a browser. Zero install on either side.
  • No pairing, no same-Wi-Fi requirement, no AirPlay/Miracast compatibility matrix. Works over 4G.
  • A QR code is the fastest possible pairing UX. People already know what to do with it.

The stack

Boring on purpose: a plain web stack, WebSockets between the screen and the phone, PDFs rendered in the browser, Stripe for passes, and a hosted service at vuthis.com. No app store, no installer on either end. That is the whole point: the only thing a screen needs is a browser.

The display page is deliberately simple: it subscribes to its session and renders whatever it is told to show. The controller is space-adaptive: on a phone it shows the essentials, on a tablet or laptop it surfaces previews, queueing and context. Same code, more room, more controls.

Things that bit me

  1. TV browsers are old. Samsung Tizen and LG webOS ship Chromium builds several versions behind. No optional chaining in some, flaky requestFullscreen. Transpile, and test on a real TV.
  2. Screensavers and sleep. A display page that goes black after ten minutes is useless. The Wake Lock API helps where supported; otherwise a tiny looping video keeps some TVs awake.
  3. PDFs on a 4K screen. Rendering with pdf.js at device pixel ratio matters; "fit page" vs "fit width" need to be one tap on the phone, not a zoom gesture.
  4. Timers must survive reconnects. A display that drops Wi-Fi for a minute and comes back must show the right number, not the number it last saw. We test this by being cruel to real TVs.
  5. Free tiers need limits that feel fair. One screen, 60 minutes, 20 photos, one PDF, no account. Paid passes ($5.99 for 24h up to $299.99 a year) add multiple screens, 250 MB storage and an automatic playlist mode that turns a TV into simple digital signage.

Where people actually use it

Teachers put a full-screen countdown timer on the classroom projector and worksheets on the board from a phone. Coworking spaces show the agenda on the meeting-room TV. Reception desks run a digital notice board. Event organisers show the schedule and the guest Wi-Fi as a QR code. Families show phone photos on the living-room TV without a casting device.

Try it

Open vuthis.com on a screen, scan, show. No sign-up. Feature guides: show photos on a TV, display a PDF on a TV, full-screen countdown timer, digital notice board on a TV.

If it fails on a specific TV browser, I would love to know which one. And if you find it useful, a link from your blog, README or wherever you post helps a bootstrapped two-person team more than you would think.


Elsewhere: the non-technical version of this story is on Medium, Screen mirroring has a privacy problem. A QR code fixes it. The launch announcement is on PRLog. We post updates on Bluesky and Mastodon, and there is a Flipboard magazine of guides.

Top comments (0)