Recipe Roulette

Recipe Roulette

2 6
calendar_today agoschedule3 min read

Hey reader, this is my first Coderlegion article.

So I wanted a random recipe generator. Nothing fancy — point at an API, hit a button, get dinner inspiration, feel like a productive adult for once. Simple plan.

Then I actually went looking at TheMealDB (solid API, free, a lot of recipe apps run on it) and typed "Kenyan" into the search. You know what came back? Basically nothing. No ugali. No sukuma wiki. No omena. This "world food" database had somehow globe-trotted right past the food I grew up eating.

I could've just shrugged and used whatever the API gave me. I did not shrug.

The Actual Problem

TheMealDB is genuinely good for a huge chunk of global cuisine — it's just not built with East African food in mind, and I'm fairly confident I'm not the first person to notice this and move on. Most devs hit this wall and either switch APIs or just accept the gap and keep scrolling. I wanted neither. I wanted a roulette that could hand you a random pasta dish AND a legit shot at ugali night in the same spin, no hierarchy, no "the real recipes vs. the token local ones" energy.

What I Actually Built

Recipe Roulette is a hybrid random recipe generator, held together by two things:

  • TheMealDB API — does the heavy lifting for the big, broad, global recipe pool. Images, ingredients, instructions, all the stuff a mature API gives you for free.
  • A curated dataset I wrote myself — covers the Kenyan dishes the API completely forgot exist. Ugali, sukuma wiki, nyama choma, and more, hand-typed to match the exact same shape as the API data (ingredients, instructions, image) so when it renders, the app genuinely cannot tell which pool a dish came from. That was the whole trick — parity, not a "bonus local section" bolted on the side.

Hit the roulette button and you might get a TheMealDB classic, or you might get a dish that has never once touched a Western food database in its life. Both count. Both are equally likely. That's the point.

Why I'm Not Just Flexing a Side Project

This isn't really a "look what I built" post as much as it's a small, annoying truth I ran into: a lot of "global" APIs and datasets have blind spots you only notice once you go looking for your own food, your own language, your own context, and it's just... not there. Nobody tells you this until you build something and hit the gap yourself.

The fix didn't need to be dramatic. I didn't fork the repo or file a strongly worded issue. I just built the missing piece and merged it in at render time like it always belonged there. Because it did.

If you're building anything that touches on "global" data — recipes, place names, holidays, whatever — do the same gut check I did: does this actually include where you're from, or does it just include where the dataset's authors happened to be from?

What's Next

  • Adding more underrepresented cuisines beyond Kenyan dishes (open to suggestions, seriously)
  • Maybe opening it up so people can PR in their own regional dishes
  • Making the mix ratio between API results and local results configurable, so it's not just 50/50 by accident

Screenshots below...
A world dish, courtesy of TheMealDB
Ugali, courtesy of the dataset

Now I Wanna Hear From YOU

Drop it in the comments:
Has your country's food ever gone missing from an API you were using?
What's the most "this dataset clearly wasn't built with me in mind" moment you've had as a dev?
Would you actually use a roulette that mixes global and local dishes, or is that just me solving my own hunger problem?

Find me on LinkedIn → Mayan Okul — come say hi.

8 Comments

2 votes
0
2 votes
0
2 votes
0
1 vote
0
🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

Just completed another large-scale WordPress migration — and the client left this

saqib_devmorph - Apr 7

Merancang Backend Bisnis ISP: API Pelanggan, Paket Internet, Invoice, dan Tiket Support

Masbadar - Mar 13

5 Web Dev Pitfalls That Are Silently Killing Your Projects (With Real Fixes)

Dharanidharan - Mar 3

Google Drive Sync

Pocket Portfolio - Jan 5

SolidJS 2.0 Async Data: A Deep Dive for React Devs

morellodev - Jul 16
chevron_left
225 Points8 Badges
3Posts
4Comments
2Connections
Hey, I'm Mayan. I’m a software engineering apprentice at Zone01 Kisumu and a DBIT student who loves ... Show more

Related Jobs

View all jobs →

Commenters (This Week)

6 comments
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!