Bowl-O-Matic: I Turned a Friend's App Idea Into a Slot Machine for Salad
Bowl-O-Matic: I Turned a Friend's App Idea Into a Slot Machine for Salad
Bowl-O-Matic is a grain bowl recipe generator that started as a text from a friend and ended up as a pixel art slot machine with its own sound effects. This one's part of the vibe-coded series, and it's probably the most purely fun build in the whole batch.
Where did this even come from?
A friend texted me an app idea out of nowhere:
App idea/does this already exist?? Salad/grain bowl recipe generator, but I can customize the ingredients by frequency (eg, broccoli = I'll eat that all the time; beets = only if it's a surefire win) and effort level ("just trying to make human fuel" vs "I'm feeling a little fancy tonight")
I love when I get this message: THIS THING SHOULD EXIST! CAN YOU MAKE IT FOR ME because yes
What did version one actually do?
The first version was a straightforward preference picker with Claude’s grubby little style paws all over it.
You'd tag each ingredient as Always, Sometimes, Only if amazing, or Never, set an effort level, and get a generated bowl back. Every ingredient gets a random base score under the hood, then that score gets weighted by your preference, boosted for Always, nudged for Sometimes, penalized for Only if amazing when the effort level is low, and anything too labor intensive for your chosen effort level gets filtered out entirely, so roasted beets don't show up on a night you picked Human Fuel. Sometimes we really are just kinda eating for subsistence.
Dressing gets picked by matching flavor tags, so a bowl leaning earthy and nutty tends to land on something like miso ginger or tahini. All of it runs client-side, no backend, no API calls.
Why turn a working app into a slot machine?
Honestly, because I like the randomness mechanic in slot machines and thought it would be funny. The recipe generator already worked. It didn't need to become a slot machine. I just wanted it to be one.
So the rebuild replaced the picker UI with four spinning reels, Base, Green, Protein, Topping, each one a tall strip of pixel art sprites that scrolls upward and decelerates hard at the end, staggered so they land left to right instead of all at once. The landing result is always predetermined the moment you spin, the randomness is entirely in how the scroll feels, not in what you actually get. The sprites are all inline SVG built from a simple pixel grid, outlined in dark pixels the way Stardew Valley does its art, with highlight and shadow pixels to give everything a little dimension. There's no audio files anywhere either, every sound, the button press, the reel ticks, the stop thunk, the little win jingle, is synthesized live.
High-level stuff going on here
What did AI actually help with?
This one was pretty smooth. Most of the back and forth wasn't debugging logic, it was fine-tuning the aesthetic, getting the pixel art feel right, getting the reel deceleration to feel satisfying instead of janky, getting the sound design to feel like a game and not just noise. The recipe logic itself, the scoring and filtering, came together without much fighting. This was more “I want to see if this works” and not trying to ship anything for anyone besides my friend.
Try it yourself
You can still exclude ingredients you genuinely never want to see, and excluded items stay visible in the pay table with a strikethrough so you can find and re-enable them later instead of hunting through a settings menu.
FAQ
Is Bowl-O-Matic actually random? Sort of. Your final bowl is decided the moment you hit spin, based on your preferences and effort level. The reels scrolling is just for feel, not the actual randomization.
Does it need an internet connection or backend? No. The whole thing runs client-side with no API calls and no server.
Can I exclude ingredients I don't like? Yes. Excluded items are removed from the spin pool but stay visible with a strikethrough in the pay table, so you can turn them back on later.