Reflection

How I built a procurement system as a working chef

By Moses Mubangizi · Published 24 June 2026 · 1 min read · Last updated 24 June 2026

How I built a procurement system as a working chef

I finish most days at 11pm. I get home, eat something, and open my laptop.

The stack is Next.js, Supabase, TypeScript, Tailwind. One person can build fast with this. No DevOps team. I am the team.

17 migrations. Organisations, departments, suppliers, products, inventory, requests, purchase orders, deliveries, issuances. Every table has row-level security. That last part took longer than I expected — not because it is hard to write, but because getting it wrong means someone sees data they should not see. In a kitchen system that tracks what you are spending and who you are buying from, that matters.

What took the longest was not the features. It was the workflow. How does a partial approval work? What happens when a delivery has fewer items than the PO? What if a supplier sends a substitute and the chef accepting delivery does not know the original order? These are operational problems. A developer without kitchen experience builds something that looks right in a demo and falls apart on a Tuesday lunch rush.

The bilingual challenge is real. Arabic is right-to-left. Every layout has to work both ways. I test every screen in both languages manually because automated RTL testing catches maybe half the issues.

2-3 hours a night. Some nights a feature ships. Some nights one bug gets fixed. All of it counts.

Every shift reminds me why this tool needs to exist.

mosematic.com/mise

reflectiontechmiseNext.jsSupabasebuilding
Moses Mubangizi, chef and developer in Riyadh
Moses Mubangizi
Chef de Partie in Riyadh with 10 years in East African and Gulf kitchens. Builds software for kitchens — Mise (restaurant procurement) and other products. Work with Moses.