DEV Community

Cover image for I built a TV for developers 📺 (13 live channels, no signup)
Shouvik Palit
Shouvik Palit

Posted on AI-assisted

I built a TV for developers 📺 (13 live channels, no signup)

I have a confession. I open ten tabs every morning just to find out what happened in tech overnight. GitHub trending, Hacker News, DEV, Hugging Face, new releases, security advisories... and by 9am I've read none of it properly.

So I did the most 2005 thing possible: I built a TV. 📺

You turn it on. It plays. You flip channels. That's it.

🔴 ON AIR: https://shouvik12.github.io/devtv
⭐ Open source (Apache-2.0): https://github.com/shouvik12/devtv

No signup. No account. No "accept cookies to continue". Just click.


🎛️ 13 channels, 13 colors

Every channel has its own color, so you always know where you are.

13 channels, 13 colors

Click any story and it opens inside the TV. Read the whole thing, hit Esc, and you're back on air.


🕹️ It works like a remote

Key What it does
← → Change channel
1–9 Jump to a channel
G Open the Guide ("what's on now")
Space Play / freeze
Esc Close the story

There's an ON AIR light, a live clock, a scrolling news ticker, and a NOW / NEXT / LATER strip on every channel. Yes, I went too far. No, I'm not sorry.


🎨 Pick your skin

Because a TV should have personality. Dark for late-night coding, wood for that 1970s living-room vibe, cream for when you want to feel like it's 1984.

Dark, wood and cream skins


⭐ Channel 13 belongs to you

Spotlight is where I put projects by other developers. It's free, and I pick them by hand.

Built something? Hit "Get your project featured" on the site, or use "You on TV" to put your own GitHub project on air. If it's good, it goes on the channel with your README or demo video in the reader.


🏆 Then it got a little crazy

  • 🥉 #5 Product of the Day on Product Hunt
  • 🏅 #1 on IndieLink

I expected a few friends to click it. Instead it hit #5 Product of the Day on Product Hunt and #1 on IndieLink.


🛠️ How it's built

One HTML file. Nothing else.

DEV·TV is vanilla HTML, CSS and JavaScript. No framework, no build step, no npm packages, no backend. It's a static page, so it lives on GitHub Pages for free and I never touch a server.

How the channels work

Your browser calls each public API directly with fetch():

Channel Where it comes from
📈 GitHub GitHub API: repos created recently, sorted by stars
📦 Releases GitHub API: release notes for React, Vue, TypeScript, Node.js, Python and Rust
🟧 Hacker News The official HN Firebase API
💻 DEV The DEV API: top articles of the day
🤗 Hugging Face Hugging Face API: trending models
🧪 AI Papers Hugging Face API: papers being discussed
📄 Latest Papers OpenAlex: newest papers by publication date

The newer channels (CVE, HN Video, AI Video, New Models and Agent Skills) work the same way: straight from the browser, no backend.

Every channel refreshes on its own timer, and if one fails it just shows SIGNAL LOST while the others keep playing. Stories you open (READMEs, model cards, abstracts, HN comments) are fetched only when you click them.

The fun engineering bits

  • No backend means picking sources carefully. Reddit, X, LinkedIn and Product Hunt were out, because they need a server or keys. arXiv was out too, because its API doesn't allow browser requests (CORS).
  • Rate limits are a budget. GitHub allows 60 unauthenticated requests per hour per IP, so the GitHub-backed channels are spaced to use about 42, leaving room for README reads.
  • Fetched content can't inject HTML. Everything is escaped first, then run through a whitelisted markdown converter, and links and images must be http or https.
  • The static is real static. The TV noise between channels is per-pixel random noise drawn in code, not an image.
  • Settings are saved in localStorage, so it remembers your channels and speed. No account needed.

📣 Your turn

📺 Which channel should I add next? Tell me in the comments.
⭐ If you like it, a star on GitHub means a lot.
🚀 If you've built something, send it to the Spotlight.

Now go flip some channels.

Top comments (0)