go back

Creamy Castle

from a rewards tracker to an end-to-end store operating system

Role

Designer & AI Builder

Timeline

2 weeks

Live Link

view project

Tools

claude, figma

Creamy Castle

Where it started


It started when a close relative based in Canada reached out for help building an app for his physical store, a fun spot in Ogidi, Anambra state where kids and teens come to play games and grab treats. The ask was small and clear: let customers track what they spend and earn rewards for it. A digital loyalty card, basically. Members would sign in, the app would remember their spend, and once they crossed a threshold they'd unlock a reward.

That was the whole brief. But the moment we tried to make it real, a simple question surfaced: who actually enters the spend? A customer isn't going to log their own purchases honestly, and the store had no point‑of‑sale system to pull from. So the "rewards app" quietly grew a second face, a front‑desk console for attendants to record every game and item a guest buys.

And once staff were in the system, the questions kept coming. How does the owner see how the day went? Who's allowed to fix a mistaken sale? What stops a floor manager from seeing the full books? What happens when an employee leaves? Each answer added a surface. By the end, the "loyalty app" had become a full store‑management platform and that evolution is the real story of the project.

What it became


The finished product is three connected apps sharing one backend, each shaped for how that person actually works:

The Member app (mobile‑first) - Customers sign in with just their phone number, see their total spend, watch a live progress bar toward their next reward, browse the full rewards catalogue, and page through their complete purchase history. Rewards unlock automatically at spend thresholds and are redeemed with a one‑time code at the desk.

The Attendant console - A fast point‑of‑sale for the front desk: look up a member by phone, build a multi‑item cart of games and items, review, and log it in one action. Attendants can pull up any member's history and balance, and redeem reward codes when a guest claims one.

The Admin & Manager console - The operating system for the business: a live dashboard, deep analytics, the games/items/rewards catalogue, a sales ledger with corrections and voids, member records, and staff management. A scoped Manager role sits below the owner, enough access to run the floor, not enough to see or change everything.

Designing the direction: from iteration to a system


The look didn't arrive fully formed, it was earned. The first stretch was pure iteration: rough screens, a lot of back‑and‑forth, small things adjusted and re‑adjusted until they felt right. Spacing, border weights, the exact blue, whether a card needed a shadow or a border, how a loading state should feel. Plenty of it got thrown away. That messy phase was useful, but it also made one thing obvious we needed a fixed visual language before the app got any bigger, or every new screen would drift.

So I stopped iterating in code and took the direction into Figma. I designed the core screens there first, the member home, the rewards flow, the sign‑in and used them to lock the decisions that had been floating: a clean white‑and‑blue palette, the Outfit typeface, soft 1,1,1,3 borders instead of shadows, Phosphor duotone icons, and skeleton loaders in place of spinners. Once those screens felt right on the canvas, they weren't just mockups — they were the spec.

From there my role shifted from exploring to directing. I turned those Figma screens into a concrete design system and then drove the implementation to match it to the pixel: exact padding values, exact hex codes, exact border widths, no "close enough."

That system is what made the rest of the project possible. When the app grew a second and third face: the attendant console, then the admin and manager tools, I didn't redesign anything. I extended the same system onto surfaces built for completely different users. It's why a kid's rewards screen and a store owner's analytics dashboard still read as one product: they were both built from a direction I'd defined once, up front, and enforced everywhere after.

Reflection


The most valuable thing I took from this wasn't a framework it was scope discipline under a moving target. A friendly "can you build me a small thing?" turned into a real product because the real‑world needs were always one question deeper than the last feature. The win was building each layer so the next one could sit on top of it cleanly: one design system, one API, one permission model, extended over and over instead of rebuilt. It shipped, it's live, and it runs a real business's front desk every day.