Case 01 · Mendi

Designed admin
out of the flow

They asked for a screen redesign.  I found that the failure was trust in the flow rather than in the interfaces, took that back to the CPO and CEO, and we agreed to expand the brief to the flow.

Company

Mendi · Marketplace

RoLE

UX designer → Head of Product Design → Interim CEO

11.2024–07.2026

KEY RESPONSiBILITIES

Product strategy

Information architecture

UX/UI

User insight

Testing & QA

Prototyping

Design system

UX/UI

Design system

Prototyping

SCOPE AND STATUS

New platform for customer, tailor and admin, completed and in production testing at handover. Admin dashboard built in Retool AI against the new database. Landing page designed and built in Framer, set up to carry over from the previous platform to the new one.

Company

Mendi · Marketplace

RoLE

UX designer → Head of Product Design → Interim CEO

11.2024–07.2026

KEY RESPONSiBILITIES

Product strategy

Information architecture

UX/UI

User insight

Testing & QA

Prototyping

Design system

UX/UI

Design system

Prototyping

SCOPE AND STATUS

New platform for customer, tailor and admin, completed and in production testing at handover. Admin dashboard built in Retool AI against the new database. Landing page designed and built in Framer, set up to carry over from the previous platform to the new one.

CONTEXT

A multi-sided marketplace connecting customers across Norway with independent tailors for repair and alteration. I owned the design direction for three roles in one ecosystem: customer, tailor and admin. I designed for a national network with pickup points established in Oslo, Stavanger and Kristiansand.

Mendi had paying customers throughout the redesign. The work below was done against a product in operation, with live orders moving through it while the new platform was built alongside.

CHALLENGES

When the company's capacity tightened I took over scope and priorities and stepped in as interim CEO. In that role I released 250,000 NOK in grant funding — 200,000 from Innovation Norway and 50,000 from Western Norway University of Applied Sciences — which kept the rebrand moving through financial constraints.

The development team was replaced twice, so the design work had to be documented well enough to stand on its own through each handover.

250 000 kr

250 000 kr

Grant funding unlocked as interim CEO: 200,000 from Innovation Norway and 50,000 from Western Norway University of Applied Sciences.

Grant funding unlocked as interim CEO: 200,000 from Innovation Norway and 50,000 from Western Norway University of Applied Sciences.

3 roles

3 roles

Customer, tailor and admin in one ecosystem. Different information at different times, in one architecture.

3 teams

3 teams

The development team was replaced twice, so the design work had to be documented well enough to stand on its own through each handover.

4 → 1 screens

4 → 1 screens

4 → 1 screen

Lookup for an order in the admin dashboard, after I rebuilt it against the new database.

Insights

The brief I was given, and the brief I took

The CPO asked for a screen redesign. I started by testing the platform myself, with both a customer and a tailor account: placed an order as a customer, followed it as a tailor, and back to the customer again and following the flow from the admin dashboard.

Functional and security testing ran over several rounds, and I documented the findings for the development team in a flow diagram covering the whole platform. Alongside that I followed the feedback coming in continuously through a Slack channel with the tailor network and by email to customer service.

The problem sat somewhere other than the screens.

– THREE PATTERNs

A marketplace only works when both sides can act without help. On the old platform, neither side could.

A marketplace only works when both sides can act without help. On the old platform, neither side could. Three patterns stood out:

Tailor side

On the tailor side, the flow depended on admin at every step. Assignments were filtered by postcode and shown to the nearest tailor, but tailors could not change their own postcode and got no notification when something became available. So admin handed jobs out manually. Once the tailor saw the assignment, they were still missing details to properly assess it. After accepting the assignment, the tailor had to contact customer service again to get the full assignment description.

Customer side

On the customer side there was a trust barrier. Customers chose the pickup point because it was the free option, but the same uncertainty came back in the Slack channel and in emails to support: they were reluctant to leave valuable garments without a receipt confirming that the garment was safely registered in the service.

Authentication

At authentication I found a critical stop. Users could not get into their own account to follow their order and update the status. I set authentication as the first priority ahead of all new build. Customers could not reach their own order, so nothing we built on top of that would be used. Attempts to fix it in the existing codebase did not hold, which is what led to decision 04 below.

The real problem was trust, in both directions, and admin was compensating for it by hand. I took that back to the CPO and CEO, and we agreed to expand the brief from screen redesign to flow work. The insights I gathered changed the scope of the project.

– before the rebuild

– before the rebuild

Meeting the tailor cost 100 NOK and required sending contact details manually. Full shipping with return cost 160 NOK. The chart shows the pick-up point delivery option: free and most popular.

Meeting the tailor cost 100 NOK and required sending contact details manually. Full shipping with return cost 160 NOK. The chart shows the pick-up point delivery option: free and most popular.

Step

Tailor sign-up

Customer orders and pays

Assignment published

Tailor accepts

Assignment details

Handover

Five days

Invoice

What the platform did

Profile setup

Customer pays with Vipps

Shown to tailors nearby (zip-code)

Status is set

Overview and chat

Drop-off or with lock code

Tailor updates status

Generated after approval

What admin did manually

Digital interviews, ID and bank details check

Cancels and refunds in Vipps

Fixes each tailor’s zip-code via developers

Searches tailor in Slack group when nobody accepts

Relays details when customer cannot log in

Tracks down lock codes or relays delivery receipt

Relays delay updates

Chases approvals, adds missing assignments, manual payout

information architecture

For three roles

The old platform showed roughly the same thing to everyone, regardless of role and regardless of where in the flow the user was. Information belongs where the decision is made, and the three roles make different decisions at different moments.

Tailor

Needs the full picture before accepting a job: where the garment is, what needs doing, and what the customer expects.

Customer

Needs confirmation along the way: where the garment is, what happens now, and who they should talk to.

Admin

Needs everything on one surface, but only when something has gone wrong.

Admin

Needs everything on one surface, but only when something has gone wrong.

– WHERE THE INFORMATION LIVES

Tailor account setup

Registration: ID and payment details

Profile setup: services, prices, delivery options, completion time, portfolio

Customer order

Browse and pick tailor

Order or ask for a quote

Payment

Stripe Connect

Holds the payment from checkout until the order closes

The order thread

Opens on payment. Chat and status in one place for both sides

Accepted

Delivered

Repaired

Returned

Approved

Declined at the start

Stripe refunds automatically

The garment has not moved yet

Admin: no action required

Approved at the end

Or automatically after seven days

Stripe pays out monthly

Admin: only handles complaint

six decisions

01

20 % platform fee, up from 15

The old rate did not account for VAT, and the result was that neither the tailor nor the platform was left with enough per job. I worked the model through and set the fee at 20 %, with free pricing and a minimum price as the floor. Tailors can price up where the work demands it.

The old rate did not account for VAT, and the result was that neither the tailor nor the platform was left with enough per job. I worked the model through and set the fee at 20 %, with free pricing and a minimum price as the floor. Tailors can price up where the work demands it.

02

A new data foundation rather than a migration

The menu in Jetadmin followed the database table by table, with small categories scattered across it. The new platform has its own variables for tailor, customer, assignment and price. Bringing the history across would have required mapping the old codebase first. We did not have that time and opted for a clear new start for data collection.

The menu in Jetadmin followed the database table by table, with small categories scattered across it. The new platform has its own variables for tailor, customer, assignment and price. Bringing the history across would have required mapping the old codebase first. We did not have that time and opted for a clear new start for data collection.

03

A new admin dashboard, built in Retool AI

Admin ran on Jetadmin, where opening one order took four screens. Assignments, details, status and payment sat on separate screens. I rebuilt the dashboard against the new database and collected the order details on one surface, where the decision is made. Lookup went from four screens to one.

Admin ran on Jetadmin, where opening one order took four screens. Assignments, details, status and payment sat on separate screens. I rebuilt the dashboard against the new database and collected the order details on one surface, where the decision is made. Lookup went from four screens to one.

04

New authentication on Stripe Connect

Test rounds gave inconsistent results on login. We moved authentication to an established marketplace solution. The same choice automated payouts to tailors, which had previously required a manual action from admin per payment.

Test rounds gave inconsistent results on login. We moved authentication to an established marketplace solution. The same choice automated payouts to tailors, which had previously required a manual action from admin per payment.

05

All order information in one view

Tailors see the whole assignment before taking a position on it, and assignments are directly available to the tailor without admin handing them out.

Tailors see the whole assignment before taking a position on it, and assignments are directly available to the tailor without admin handing them out.

06

Direct dialogue between customer and tailor

They arrange delivery and collection between themselves, independent of pickup points. That meets the trust barrier where it arises.

business acumen

What the decisions mean for the business

SCALABILITY

Orders can grow without headcount following. Two manual actions per order fall away, and a small team gets that time back for the platform and the tailor network.

Revenue

Free pricing with a minimum as the floor opens up higher-value work such as bunad (national costume) repair and furniture textiles. Higher order value goes straight to revenue, and the minimum holds the price level up in the market.

unit economics

Payouts to tailors go automatically through Stripe Connect. Cost per order stays flat while volume grows.

Measurability

The measurement points are defined before the first order comes in. The team can follow the numbers from week one after launch and fix what stalls while a change is still cheap.

Specialisation

Customers can request quotes for work outside the service menu, and tailors can show previous work. The expertise already in the network becomes visible where the customer chooses.

Growth direction

Stripe Connect lets tailors sell their own garments through the same setup. Users can pull the product in new directions before a development cycle is started.

COLLABORATION

Delivering to three different teams

The development team was replaced twice. Each team built from its own preferred structure.

Between team 2 and team 3 we went a period without developers while orders kept moving through the old platform. A senior consultant reviewed the codebase and found it costly to work in. I gave a prospective team access to the stack so they could judge for themselves, and coordinated with the outgoing team myself, but getting there took longer than the answer was worth. Rather than keep spending time on understanding the old code, we rebuilt authentication and payment on Stripe Connect.

The lesson was to find out what foundation each team actually builds from, and deliver exactly that.

team 1

Worked from the component library I built in Figma. Their estimate for the order and payment flow came back at 300 hours. An independent read put it at 30. I took both numbers to the CEO and we changed direction.

team 2

Wanted the system to live in the code, so we moved to shadcn. Two internal hackathons took the order flow from sketch to near-complete, with timeboxing turning prioritisation into delivered progress.

team 3

Knew the design system but built on Stripe Connect, which ships its own screens and set designs. I gave up owning the visuals and owned the transitions instead: a full flow diagram plus a working prototype of login, dashboard and order flow.

team 3

Knew the design system but built on Stripe Connect, which ships its own screens and set designs. I gave up owning the visuals and owned the transitions instead: a full flow diagram plus a working prototype of login, dashboard and order flow.

AI in the workflow

AI in the workflow

AI moved the time and the risk

With Figma Make I came to the engineers with a working flow where I previously had static screens, so the discussion became concrete before anyone wrote production code. I built the admin dashboard myself in Retool AI against the database, relieving the development team of work that would otherwise have taken weeks.

– OLD VS. NEW ADMIN DASHBOARD

The same record sat across four screens in Jet Admin. Order overview required four screens: one for the customer, one for the tailor, one for delivery and one for the order.The new admin dashboard, built in Retool AI against the new database. Admin finds the order and reads the whole record without leaving the list.

4 screens

4 screens

BEFORE – JET ADMIN

BEFORE – JET ADMIN

Start

Start

Orders table

Orders table

SCREEN 1

SCREEN 1

Customer details

Customer details

Name, email, phone, customer ID

Name, email, phone, customer ID

SCREEN 2

SCREEN 2

Tailor details

Tailor details

Assigned tailor and status

Assigned tailor and status

SCREEN 3

SCREEN 3

Delivery details

Delivery details

Method

Method

SCREEN 4

SCREEN 4

Order details

Order details

Item, description, service, payment, photos

Item, description, service, payment, photos

1 screen

1 screen

AFTER – RETOOL AI

AFTER – RETOOL AI

Start

Start

Orders table

Orders table

1 screen

1 screen

Customer details

Customer details

Name, email, phone, customer ID

Name, email, phone, customer ID

Tailor details

Tailor details

Assigned tailor and status

Assigned tailor and status

Delivery details

Delivery details

Method

Method

Order details

Order details

Item, description, service, payment, photos

Item, description, service, payment, photos

– The one view

Select a row in the orders table; every detail reads out beside it.

deciding what not to build

The tracking I stopped

Customers wanted a receipt for the garments they sent. I built a tracking feature as a testable app in Databutton in three hours, without a developer, and tested it with potential customers.

They found it useful. I stopped it anyway. Tracking assumed someone registered the garment when it arrived at the pickup point. Some pickup points already did this, unprompted, and reported it to customer service. Others had no capacity. Without staffing settled, tracking would have shown nothing in exactly the cases where the customer was most uncertain.

Three hours let me test early, and learn that the question sat elsewhere: trust was failing in the information users were given, not in the absence of tracking.

In the new platform, tracking lives in the shared thread between customer and tailor. Both update status with one tap and can add a detail where it is needed. Customer and tailor see the status, the message and the assignment in the same place. Tracking became part of the dialogue they needed, rather than a separate tool to learn.

PICK THE RIGHT TOOL

I pick the tool according to what the decision requires: a testable app when the question is whether users understand the flow, a working prototype when the question is whether I share the same understanding as engineering. The question of what should be built comes before both.

– TRACKING IN THE DIALOGUE

The same order, seen by customer and tailor. Status, message and assignment sit in one thread, so tracking is part of the dialogue rather than a separate tool.

FROM TEST FINDING TO DELIVERED SOLUTION

Plain language when the question occurs

Mendi's promise was a platform by and for tailors, and overview was what they needed most. Production testing was meant to answer whether the new platform kept that promise. I ran it myself, in qualitative interviews where tailors shared their screen so I could see where they stopped.

Four of five tailors stopped when the form asked for an IBAN — even with a test IBAN pre‑filled. The ask itself was the blocker: they never remember where the number lives, and being asked for it feels stressful. The form asked for the most sensitive detail without explaining why or how to find it.

I kept IBAN in registration because payouts run through Stripe Connect — tailors need a working payout account before their first paid order. Moving it later would interrupt shop setup instead. So I answered both questions in place: three short steps, the reason stated in the payment step, and a guide to finding the number next to the field. I prototyped it in Figma Make; the developer implemented it directly. The relaunch will show whether it works: the share of tailors who publish a shop within seven days.

– EXPLANATION NEXT TO THE FIELD

Shop and service setup I moved out of onboarding and into the dashboard. It was too much to take a position on before tailors had seen the product, and it was blocking registration. At the same time they needed help getting started, so recommended price ranges, delivery options and ready-written service descriptions sit where the choice is made, ready to copy and make their own.

– EXPLANATION NEXT TO THE FIELD

A strategic cut

Shipping: unprioritized

Delivery was where tailors were least certain. The shipping options cost 160 NOK return regardless of distance, so customers chose the free pickup point, and the cost landed on the tailor without being covered in the price.

An integration with the shipping provider would have solved it, but the cost didn't work in any version of the model we looked at. I deferred it. Instead, the new platform lets tailors set their own pickup points — at home, at work or somewhere else — and price shipping into their own rate. The customer sees which area the tailor works from. That solves the problem on the tailors' terms, and the integration can come when the economics work.

– DELIVERY AND RETURN SEPARATELY

ResultS

Admin designed out of the flow

The new platform was built and tested in parallel with the old one running live, with a new visual identity and new flows for all three roles. Feedback from tailors described the new communication flow as clearer and better structured. The flows are designed so customer service handles exceptions only. In production testing, payouts reached tailors automatically through Stripe Connect. The admin dashboard collects each order on one screen instead of four.

I redesigned and rebuilt the landing page in Framer, and it is live today against the old platform. It is set up so the customer and tailor dashboard logins can be connected without developer help as soon as the last critical issues I have documented are closed.

All together, the changes are designed so each role can act on its own, the goal the old platform never reached.

– AREA, SERVICES AND COMPLETION TIME

relaunch metrics

Tailor managing their shop without admin help

The new platform is under the last iterations before relaunch. This is what I would have steered by for the first three months: tailors running their own shop without help from admin.

80 %

of new tailors publish a shop within seven days of registering.

90 %

of orders completed without customer service involved.

< 24 hours

Median response time on requests.

Alongside that I would have measured whether free pricing lifts revenue, through average order value and the share of jobs above the minimum price. After three months I would have added the share of tailors with at least one order per month, and whether anyone drops out of registration once the fee is explained.

handover

A product I have owned should be able to run without me

Once the rebrand was tested and documented, I handed the product over rather than sitting on the knowledge. The handover document collects deadlines, subscriptions and access, remaining issues sorted by severity, and the order they should be taken in.

A product I have owned should be able to run without me. That goes for the users, it goes for the team, and in the end it goes for my own role.

Currently available.

Connect

LinkedIn

CONTACT

location

Oslo, Norway

Currently available.

Connect

LinkedIn

CONTACT

location

Oslo, Norway

Currently available.

Connect

LinkedIn

CONTACT

location

Oslo, Norway