Directo · CreatorField app · paired with Renato Garcia8 min read
Who publishes, and on whose behalf.
The app of the person who produces the offer inside the store, and the model that decides who publishes on whose behalf
- Client
- Directo
- Period
- Aug. and Sep. 2026
- Role
- Paired with Renato Garcia
- Scope
- App for whoever produces the offer
Pair designing with designer Renato Garcia. Client: Directo, a Diletta client. Product: Creator. August and September 2026.
- 35
- screens across four tracks, with the home screen as the only center.
- 3 axes
- decide what each person sees and on whose behalf they publish.
- 16
- screens of an alternative, delivered with the diagnosis beside them.
00 File
| Client | Directo, a Diletta client |
| Product | Creator · the app of the person who produces the offer's content in the store |
| Role | Senior Product Designer at Diletta Solutions, the company where I work, pair designing with Renato Garcia |
| Scope | 35 screens across four tracks, the authorization model, and the build board in Figma |
| Validation | with the client team, decision by decision |
| Platform | mobile, plus a web panel for the people who decide |
| Period | August and September 2026, one month of work |
01 Summary
Problem. The TicTac feed only has offers if somebody photographs the product on the shelf and publishes it. That person, the creator, had no app.
Role and team. I'm a Senior Product Designer at Diletta, and Directo is a Diletta client. I worked in pair designing with designer Renato Garcia. We met every day and worked the elements together, to get more out of them and deliver faster. Directo validated each decision.
The decision. I replaced the list of three account types with an authorization model on three axes. The same person works at a store and represents a brand, and the list could not handle that.
Result. 35 screens across four tracks and a nine-row table that decides what each link sees. Afterwards Directo asked for our design system.
Status. Not live. One month of work, between August and September 2026, and the app has not been built yet.
02 Context
TicTac is a feed of offers from physical stores. Brands pay for it with retail media budget, the money spent to show up where the purchase happens. The buyer is somebody near the store. The person who produces the offer is the creator, who photographs and writes about the product on the shelf.
So my user was the person who works: the store merchandiser, the brand representative, someone producing content on their own. Each one sees a slice of the same data. That was the hard part.
03 Constraint
Whoever produces never sees money. Budget, paid reach and campaign return belong to the manager.
The same person can hold three roles, and each grants a different permission over the same product. The screen has to say which one is in effect right now. One hat at a time.
The person producing also does not choose the post's region. It comes from the approved link.
And CPF Seguro, the company's fraud-protection product, runs embedded inside this app under Directo's brand.
04 The problem in numbers
In Brazilian food retail, 38% of the causes of out-of-stock, the product missing from the shelf, start inside the store. That is where nobody is looking, and it is where the creator is. Without someone in the field with a task, a deadline and a reward, the feed has no offer to show.
05 Exploration
The proposal that already existed, measured against the market
When I joined, a flow was already designed. I compared it point by point with TikTok Shop, Field Agent, Roamler and BEES Force. Six findings came out, and three changed the design.
The screen asked for the account type before login. On those platforms the account is single and the role comes from an approved link, because some people are both.
The automatic suggestion showed the store's interest ("high stock, 47 units") and hid the interest of the person about to produce. The market shows the estimated commission.
And the person producing typed in the price and the discount. Margin belongs to whoever holds the stock.
I brought the answer as a designed alternative, 16 screens, with the diagnosis beside them.
06 Decisions
D1 · Authorization is three axes that multiply
The question was "what can this person do". The answer that existed was a list of three account types, and it broke on the first real case.
First I split two people. Whoever executes gets the task and publishes, on the phone. Whoever decides sets budget and campaign, in a web panel. The app belongs to the one who executes.
The model has three axes: who authorizes, the scope and the degree. The scope crosses place, product and action. The degree has four steps: see, execute, publish directly and speak on behalf of the company. Each step asks for more verification.
Why: the reference came from banking. Corporate signing authority answers who signs, up to how much, on whose behalf and until when. With that logic the chain can only shrink. The degree never rises and validity shortens each time it is passed on, so an agency that only executes cannot give anyone the right to represent the brand.
D2 · Whoever executes never sees budget
A table of nine rows by four columns says, for each type of link, what the person sees: stock, price, priority, budget, who revokes, who pays and three more. On the budget row, all four columns say "never".
Why: how much each one sees is a business rule. The person who works at the store sees the stock count. Someone who came by invitation sees only in stock, running low or gone. And without a reservation two people photograph the same shelf and one works for free, so the task is reserved first and shows as blocked for everyone else.
| The data | Link · the store where I work | Open invitation · nearby store | Brand · manufacturer | Agency · intermediary |
|---|---|---|---|---|
| Stock | 12 units, the exact number | in stock, running low or gone, no number | by chain and by region, never by store | what the brand released to the agency |
| Price | retail price and the store's margin | only the retail price | the suggested and the average actual price | the average actual price |
| Display | shelf, aisle, end cap, share | only what the briefing describes | aggregated shelf share | aggregated |
| Priority of the day | the one this branch set | the one the task declares | the one the brand itself set | the agency client's |
| Other creators | who at the store took what | only "reserved", no name | how many accepted, no names | how many, no names |
| Budget, CPM, ROI | never | never | never | never |
| Exclusive task | yes, only for people who work there | no, it is contested within the radius | yes, by brand invitation | inherited from the contract |
| Who revokes | the branch manager | the store itself, when it closes the task | the brand's trade team | the brand, and it cascades |
| Who pays | the store | the store, per approved task | the brand | the agency |
This table decides what each screen shows. Screen by screen, each one would give a different answer.
D3 · The personas did not turn into a build, so I wrote the list backwards
I presented nine personas. Directo found them too theoretical and proposed another start: describe the resolved state and walk back to today. The same conversation brought Bezos's rule of splitting reversible decisions from structural ones.
I put both ideas on one board in Figma: the resolved state at the top, with a date, and below it the steps that lead there, each with an owner and a deadline. The button label is reversible, and whoever is doing the work decides and tells the others. Where the price comes from is structural, and it goes to the table.
Why: a persona explains the why and does not say what to build first. Somebody deciding on Monday needs a list with owners.
What I gave up: consensus on everything. A reversible decision taken alone annoys somebody once. A structural one taken alone costs a quarter.
D4 · The price comes from the barcode
Whoever produces does not type a price. They scan the barcode on the shelf and the system returns the current offer from the catalog.
Why: a wrong price in a supermarket turns into a queue at the register and a product sold at a value nobody authorized. That made the barcode reader a mandatory piece of the first release.
D5 · Nothing publishes outside a campaign
Whoever decides creates the campaign first. With no active campaign, the publish button does not even appear.
Why: loose content has nobody paying for it. The campaign turns the work into something billable, and it gives the brand the right to refuse.
07 Craft
I wrote six rules before the first pixel, among them reserve before executing and reward only after approval. Two new pieces entered the client's system: the task card and the context bar.
08 Result
35 screens across four tracks. The authorization model, with three axes, four types of link and four degrees, and the nine-row table. 16 screens of an alternative to the old flow. And the build board, with an owner and a deadline on every step.
Afterwards Directo asked to adapt the house design system to their brand. It was agreed as a long-term foundation, outside the sprint. It was the first time anyone outside asked for that design system.
The app has not been built, so I have no usage numbers.
09 What I would do differently
I would go to the store before writing any persona. They came from market data and from conversations with the client, and none came from a merchandiser inside the supermarket. The visit got pushed to later, when it should have been the first step.
Two questions only the field answers: how much time the person has between two tasks, and what they do when the product the task asks for is not on the shelf.
The authorization model depends on contracts. Who signs, who revokes and who pays are still business answers, and until then every screen carries an assumption.
Sources
- Out-of-stock in Brazilian food retail and in-store causes: Central do Varejo, March 2024
- Platforms used in the diagnosis: TikTok Shop, Nextdoor, Field Agent, Roamler and BEES Force