DEV Community

Cover image for 🐍 Snake - rendered with 576 browser windows [warning - this WILL hurt your eyes...and PC!]

🐍 Snake - rendered with 576 browser windows [warning - this WILL hurt your eyes...and PC!]

GrahamTheDev on July 23, 2026

I have been quiet lately I know - but don't worry I haven't forgotten you all and how much you like seeing really stupid ideas on the web! This on...
Collapse
 
nickytonline profile image
Nick Taylor • Edited

Sweaty Jordan Peele

Collapse
 
francistrdev profile image
FrancisTRᴅᴇᴠ (っ◔◡◔)っ

T r u s t i t.

Collapse
 
francistrdev profile image
FrancisTRᴅᴇᴠ (っ◔◡◔)っ

I saw a video of someone did something similar, but they use the WHOLE computer. The idea is the snake is made of apps on your computer. He made it if it eats System32, the computer crashes lol.

Collapse
 
grahamthedev profile image
GrahamTheDev

I love that! Even more chaotic! haha

Collapse
 
miketalbot profile image
Mike Talbot ⭐

I don't know anyone less afraid of thinking outside the box than you Graham. Try getting an AI to come up with that...

Collapse
 
grahamthedev profile image
GrahamTheDev

That is the scary thing now - AI lets me build the scary scary thoughts far more easily :-P

Collapse
 
itsugo profile image
Aryan Choudhary • Edited

diabolical

Collapse
 
wrencalloway profile image
Wren Calloway

The broken-link checker case is the interesting one, and there's a failure mode lurking in it that snake doesn't expose: once you window.open a cross-origin target on the right, you keep the WindowProxy handle but you lose almost everything through it. You can still call .close() and reassign .location.href, but reading .location.pathname, .document, or the final resolved URL after a redirect throws on the cross-origin boundary. So for the paywall/SPA case you flagged — where a 200 lies to you — the opener can't actually confirm what landed. You're back to a human eyeballing it, which is fine, just worth being explicit that the window gives you a viewport, not a probe.

The other sharp edge is popup grouping heuristics. Chrome treats a burst of window.open calls differently from one triggered directly in a user-gesture handler — 576 windows works because you've got the always-allow grant, but the "two windows that feel like one app" demo is fragile the moment the open isn't synchronously inside the click handler. Await anything before window.open and the gesture is spent, so the second window silently doesn't open. Worth opening both up front and just reassigning .location after, rather than opening on demand.

Collapse
 
sylwia-lask profile image
Sylwia Laskowska

Hahahaha this is crazy 🤩🤣

Collapse
 
unitbuilds profile image
UnitBuilds

Next, have snake, but every time it eats an apple, it spawns a new window somewhere and segments the play area to include it, but you dont know which part till you see it. That way it starts as a memory game and very soon becomes near impossible to keep up with.

Collapse
 
grahamthedev profile image
GrahamTheDev

Hahaha, would love to see it!

I also thought that you could play a detective game where there is one window and you track where it is moved on screen and items appear, like a magic magnifying glass type thing!

Collapse
 
unitbuilds profile image
UnitBuilds

Oooh that can work, if you use window coordinates, you can have the browser act as 'x-ray vision' that does a negative of the background behind it and you need to find a hidden object hiding somewhere, eg. behind an icon.

Collapse
 
arpit_mishra1 profile image
Arpit Mishra

576 windows just to play Snake — this is the kind of beautiful, completely unnecessary engineering I live for. My poor GPU fan is already spinning up just reading the title. Did the snake ever get self-conscious about being watched from 576 different angles at once? Also, genuine question: did your window manager survive, or did this take a few casualties along the way?😄😃

Collapse
 
grahamthedev profile image
GrahamTheDev

Surprisingly it all worked fine on my PC (but it is pretty beefy) - started to flicker a bit but still playable!

Collapse
 
sarahpan profile image
Sarah Pan

This is so chaotic in the best possible way 😂 Turning 576 browser windows into Snake is such a ridiculous idea, but I love that it somehow leads to a genuinely useful workflow for checking broken links.

Collapse
 
grahamthedev profile image
GrahamTheDev

The whole series is me doing really stupid things to demonstrate / learn a useful technique!

Glad you enjoyed the chaos! hahaha

Collapse
 
posandu profile image
Posandu • Edited

This reminds me of theannoyingsite.com/ 😅

Collapse
 
daniel_possiblekwabi_b57 profile image
Daniel Possible Kwabi

Damn 😂. And I thought I was crazy

Collapse
 
caelora profile image
Caelora

This is one of the most creative browser experiments I've seen in a while! 😄 I love how you keep pushing web technologies far beyond their intended use just to see what's possible. The technical challenge is impressive, and the warning in the title definitely wasn't an exaggeration—my browser fan started working overtime. Great work!

Collapse
 
grahamthedev profile image
GrahamTheDev

Haha I do like to stress people's computers out - its a little less strain than the doom rendered with a linear gradient at least :-)

Going to have to start getting insurance incase someone sues me for their computer blowing up! hahaha

Collapse
 
innovationsiyu profile image
Siyu

The broken link checker use case is the real gem here. It proves that the value of an API is not in the spectacle but in the simple interface that enables complex behavior underneath. That is exactly the design principle behind the Human Card in Opportunity Skill. On the surface it is just an image with a machine-readable ID, the QR code analogy is deliberate. Underneath, the recipient agent retrieves structured data, evaluates semantic match quality, and decides whether to initiate contact. Simple interface, complex behavior, zero coordination required.

Collapse
 
grahamthedev profile image
GrahamTheDev

What was your high score?

Think I got to 44 before I gave up!

Does this inspire you to build anything interesting / cool (or silly I suppose :-P)

Collapse
 
keerat_rashid profile image
Keerat Rashid

cool, can it work on two different browser: chrome and edge resized as a SPA?

Collapse
 
grahamthedev profile image
GrahamTheDev

I would imagine it COULD work - but you would have to have a server handling communication via websockets at that point as the two different browsers would not be able to talk to each other directly via JS.

Collapse
 
vladsez profile image
Vlad

wow!

Collapse
 
ravipurohit1991 profile image
Ravi

I had so much fun. I have 3 monitor setup, would be cool if the snake could travel across monitors ;)
Seriously, I had fun. Looking forward to more wonderfully weird things from this series :)

Collapse
 
inferhaven profile image
InferHaven

Thank you for the fun!

Collapse
 
votiakov profile image
Andrii Votiakov

OMG this is one of the most useful applications of software I have ever seen 🤣 Thank you

Collapse
 
qiaoqianqian_86e609eb0169 profile image
qiaoqianqian

snake so terrible

Collapse
 
mikyah profile image
mikyah • Edited

Snake across multiple monitors would be crazy. I kinda wanna try it now LOL. @granny

Collapse
 
publiflow profile image
PubliFlow

Good coverage of the fundamentals. For teams working at scale, I'd also recommend setting up strict ESLint configuration — catching these anti-patterns at lint time saves hours of runtime debugging.