Mobile product

Dinee

A restaurant app for finding, following and booking places. I strengthened its UI kit and designed two flows end to end: Lists, and adding a restaurant.

Role
Product designer
Timeline
6 months · 2026
Team
Minimum Code × Dinee
Platform
iOS & Android
Market
The Netherlands
  • 6 monthsEmbedded in the Minimum Code team2026
  • 3Flows designed end to endLists · Recommend · Create a restaurant
  • NLLive on iOS & AndroidLaunched in the Netherlands first
Dinee app screens on phones
01

The brief

Dinee helps people find, follow and book restaurants — with ratings from Google and from friends in the Dinee community. It launched in the Netherlands first.

I joined mid-project: the core app was in place, but its UI kit was still primitive and two key flows were missing.

02

My role

Six months in the Minimum Code team: I strengthened the UI kit with cases and missing pieces, then designed two flows end to end.

  • UI kit · states, cases and missing components
  • Lists · create, share and collaborate
  • Recommend a restaurant · for diners
  • Create a restaurant · for owners
03

The challenge

Starting point
A working app with a primitive UI kit — joined mid-project
Social by design
Lists shared with friends, collaborators and invitations
Data from Google
Restaurant info pulled from Google — and what happens when it doesn’t match
Two audiences
Diners recommend places; owners create their own listing

How Igot there

  1. 01

    Audit

    Went through the live app and its kit to see which components and states were missing.

  2. 02

    Strengthen

    Added cases to the kit — empty, invited, pending, not found — and the components new flows needed.

  3. 03

    Lists

    Designed lists end to end: creating, editing, sharing and collaborating with friends.

  4. 04

    Add a restaurant

    Designed how diners recommend a place and how owners create their own listing.

UI kit

From primitive,to complete

The existing kit had the basics but few rules. I added semantic colours, button variants for each case, defined the radius and spacing nobody had set, designed the bottom sheets — and gave every component the states real data creates.

Dinee semantic colour set
Colours · semantic set for success, warning, error and info
Dinee button variants and states
Buttons · a variant for every case, each with its states
Dinee input states
Inputs · default, focus, filled, error
Dinee restaurant cards in every size
Cards · restaurant cards in every size
  1. 01

    Semantic colours

    Success, warning, error and info got their own colours, so a state reads the same on every screen.

  2. 02

    Buttons for every case

    Primary, inverted, ghost, outline, link and icon buttons — each with default, pressed and disabled states.

  3. 03

    Rules where there were none

    Radius and gaps that were set by eye became tokens; bottom sheets got one pattern used everywhere.

Flow 01 · Lists

Saved together,shared together

Lists turn saved places into something to share. I designed the whole flow — creating and editing lists, liking, sharing, adding collaborators and what an invited friend sees.

Create & manage

  1. Create & manage: Your listsYour lists
  2. Create & manage: Create a new listCreate a new list
  3. Create & manage: A listA list
  4. Create & manage: Edit listEdit list
  5. Create & manage: LikesLikes

Share & collaborate

  1. Share & collaborate: Add collaboratorsAdd collaborators
  2. Share & collaborate: Invite sentInvite sent
  3. Share & collaborate: You are invitedYou are invited
  4. Share & collaborate: Invited list · accept or declineInvited list · accept or decline
  5. Share & collaborate: Collaborators · pendingCollaborators · pending
  1. 01

    Lists are social

    Every list can be shared, liked or opened up to collaborators — saving a place is the start of a plan.

  2. 02

    Every role has a view

    Owner, collaborator, invited friend and visitor each see the same list with the right actions.

  3. 03

    Invitations, handled

    Sent, pending, accepted or declined — each step tells both sides where things stand.

Flow 02 · Add a restaurant

Every place,a way in

Two ways in: diners recommend a place they love, owners create their own listing. Both start from Google data — and both have an answer for when it doesn’t match.

Recommend · for guests

  1. Recommend · for guests: Recommend to DineeRecommend to Dinee
  2. Recommend · for guests: SearchSearch
  3. Recommend · for guests: Check the detailsCheck the details
  4. Recommend · for guests: ThanksThanks
  5. Recommend · for guests: Go to restaurantGo to restaurant
  6. Recommend · for guests: Added · great taste!Added · great taste!

Create · for owners

  1. Create · for owners: Create a restaurantCreate a restaurant
  2. Create · for owners: Not on Dinee yetNot on Dinee yet
  3. Create · for owners: Found on GoogleFound on Google
  4. Create · for owners: One question per screenOne question per screen
  5. Create · for owners: Accessibility & amenitiesAccessibility & amenities
  6. Create · for owners: Almost thereAlmost there
  1. 01

    Google first, manual always

    Search pulls name, address and photos from Google; manual entry is always one tap away.

  2. 02

    No dead ends

    Doesn’t match, not found or already on Dinee — every case has a next step.

  3. 03

    One question per screen

    Owners build their listing step by step, with progress they can see.

Outcome

WhatI learned

  1. 01

    Strengthen before you add

    Joining mid-project, the fastest way forward was fixing the kit first — the new flows were built on it, not around it.

  2. 02

    Design the unhappy paths

    Not found, doesn’t match, already on Dinee: the edge cases took as long as the happy path, and mattered as much.

  3. 03

    Social needs every role

    A shared list looks different to its owner, a collaborator and an invited friend — each needed its own view.

Seen enough?Let’s talk.

App Store Google Play