Weekly Dev Roundup: A Week of Getting Smaller (and Bigger)
One of the things that hits you after shipping a handful of mobile games is that screen sizes are never done with you. You think you've handled it — you've tested on your device, you've run the simulators — and then app review comes back with a crash on a phone you've never heard of, or you pull out your own tablet and realize a sticker overlay is sitting in completely the wrong place. This week was a lot of that: making things fit, making things faster, building a live studio heartbeat display out of a pixel-art LED panel, and in one case, making sure your jurors aren't all named "Juror 1."
ShutterClash: The Responsive Overhaul
ShutterClash is still fighting its way through Apple approval, and app review has a way of keeping things lively. The two commits that landed this week were infrastructure-focused: tightening the database connection pool and adding creation timestamps to deck cards — part of the Pixoo display work I'll get to in a minute. Sensible, boring, necessary.
The real story, though, is what's happening locally — a responsive layout overhaul that touches nearly every screen in the game. I've been systematically replacing hardcoded dimensions with dynamic calculations across the Collection view, the Arena, the Camera screen, GameCard components, and the Tutorial overlay. The pattern is the same everywhere: check the window height, figure out if it's a "compact" device (I'm using a threshold around 740px for phones and 720px for the arena), and then scale everything — card widths, font sizes, button padding, icon dimensions — proportionally.
What makes this trickier than it sounds is that ShutterClash isn't a simple list-and-tap app. The collection screen has a centerpiece showcase card, share and delete overlays, upgrade buttons, stat displays, tier badges, type badges, and level indicators — all of which need to coexist in a shrinking rectangle without looking like a yard sale. I ended up calculating the available vertical space by subtracting the header, sort bar, bottom tray, and safe area insets from the window height, then deriving the showcase card width from that. On a tiny screen you might get a 160px card; on a normal phone it's closer to 280. The fanout math in the arena — how the cards spread out in your hand — now adapts to the screen width so five cards don't spill off the edges on a smaller device.
Headline Harmonies: Tablets at Last
The big news this week is that the tablet-mode branch got merged. This has been sitting on a separate branch since mid-August, and what finally forced the issue was getting ready for the Sask Retro Game Con next weekend — I'll be showing Headline Harmonies at the booth, and the last thing I want is someone picking up an iPad and seeing a stretched phone layout with category stickers drifting into the void. The merge brings proper tablet support with adjusted layouts across the board.
While I was in there, I also fixed a bug in the last-login timestamp — turns out it wasn't being set correctly in some auth flows — and added tracking for when someone becomes a paying user and when they last created a custom song. More Pixoo infrastructure, same as ShutterClash — every game needs to record when things happen, or the display has blind spots.
The Pixoo Clock: Every Game, Every Day
All those random timestamps and tracking columns I mentioned? They weren't random. They were for this.

I've had a 64×64 Divoom Pixoo display sitting on my desk for a while — one of those retro pixel-art LED panels that's basically a grown-up Lite-Brite. This week I built a custom app that turns it into a live heartbeat monitor for every game in the studio.
The layout works like a calendar heatmap: each column is a day with the month name across the top, and each colored square represents a real player action from one of the four live games. New signups, purchases, content created in-game, someone just firing up the app to play — every one of them lights up a pixel. It's the kind of thing that sounds frivolous until you have it, and then you can't imagine not having it. I glance over and know instantly whether today is quiet or busy without opening a single dashboard.
The timestamp work across ShutterClash, Headline Harmonies, and Doodle Doo this week — the last-login fix, the purchase tracking, the founder-pass timestamps, the deck card timestamps — it was all infrastructure for this one display. Every game needed to record when things happened consistently, or the clock would have blind spots. Now all four games feed the same system, and the Pixoo lights up with the studio's actual rhythm in real time.
Special Bylaw Unit: Jurors With Names
Special Bylaw Unit got one commit this week, but it's the kind that makes the game feel more real. Up until now, jurors and witnesses were generated with placeholder identifiers — functional but flavorless. The latest change routes juror and witness name generation through the LLM so they get proper surnames that match their species and personality. A badger juror named "Mrs. Brock" lands differently than just "Juror 3," and witnesses with actual names make the courtroom feel like a place instead of a spreadsheet.
The headshots got updated alongside the name generation, which means the character art and the naming system are now aligned — when the prosecution calls a witness to the stand, the face you see and the name you read belong to the same character. Small thing, big difference in immersion.
Where Things Stand
Three games and one pixel-art clock tying them all together — the common thread, if there is one, is polish. Tablet layouts, smaller-screen responsiveness, named characters instead of numbered slots, and a real-time display that turns player actions into something you can see from across the room. These aren't the flashy features that make good screenshots, but they're the things that make a game feel finished when you pick it up for the first time — or the fifth.
Is every screen in ShutterClash responsive yet? Not quite. Does the Pixoo display actually make me more productive, or am I just mesmerized by tiny colored squares? Honestly, both. But that's the job: a hundred small things nobody notices until they're broken, and then it's all they notice.
Back to it.