Brookstris: A Seriously Performant 'Falling Blocks' Game

May 19, 2026

Tetris Company, please don't sue me

Today I vibe-coded a 40-line Sprint version of Tetris with Codex and GPT-5.5.

I call it: Brookstris: https://brooksdubois.com/Brookstris

Brookstris Demo

A Little About Me

I'm a frontend dev with about eight years of experience and a huge fan of Codex since it dropped. I'm full stack with TypeScript and Kotlin, and I've been a bit of a performance snob for a while now. I've been a passionate Tetris player for years. I went all-in on vibe coding when GPT-3 came out and it became actually feasible.

My Tetris History

I actually started with the Atari version of Tetris on Windows back in the day. Of course, had it on GameBoy. At one point I found Quinn on Mac OS X, that was pretty good. Then I started playing online on Tetris Friends. I was "attentionwandere" if anyone used to play lol. Loved the arena mode. I found the awesome Hard Drop Forums and really tried to step my game up with finesse. My record sprint was 43 seconds on Tetris Friends at one point.

The Flash performance of Tetris Friends wasn't great, but it was still fun. After they shut down Tetris Friends I moved to DS, then Tetris99 and TETR.IO, but it was never quite the same. Especially trying to hold the nunchucks like they were a keyboard (switching hands), that kind of worked so I played that for a little while. Eventually got kind of tired of them both, the ads on TETR.IO, installing Java SDKs, and hand cramps. I sold my Switch and I kinda gave up on Tetris for a little while, unfortunately.

About the Development:

I've played around with the source code for Nullpomino and Apotris, extensively comparing the two and modifying them, but I could never get either one quite the way I wanted. Today I decided to scrap all of that and just vibe-code something from scratch with oh-my-codex and a meta-prompting technique: I refine prompts with GPT-5.5 thinking.

I specified SRS, DAS, ARR, and competitive settings, localStorage, SolidJS and a few other things. Then, basically, I spun up an empty repo, did npm init solid, then ran through a $deep-interview a $ralplan and a $ralph loop and out came "Brookstris"! It took me about an hour total, including the follow-up prompts.

Master Prompting Level: Achieved!

More on the Tech

I specified Solid.js for the overall page, for its fine-grained rendering (better than React) and a WebGL renderer with a strict 120fps minimum. It should be supremely playable. I haven't actually looked at the code, but I made sure to specify performance, performance, performance each step of the way. It uses localStorage for settings, and the entire thing is client-side (no data leaves the browser whatsoever). It's purely for sprint, but I may add a Zen mode if people like it.


Honestly, I think this came out great and I absolutely love it. It's brought back my love for Tetris Sprint. Can't believe I didn't think of this sooner!

It's a very small bundle, so I've decided to deploy it to my personal site for the world to play.

If you're a competitive player, I'd love your feedback on it. Feedback is welcome, and the rest of the code blog has more experiments in SolidJS, Kotlin, WebGL, and agent-assisted development.

See if you can beat my time!!

Screenshot of My Best Time 54s

© 2026Brooks DuBois™