The client portal started as a share link. An agent asked whether they could send a seller the listing page before it went live, we said yes and shipped a URL, and then spent the next several months discovering that we had accidentally built the feature agents demo first.
These are the notes from that stretch — mostly about designing for a person who is not your customer, has not been trained on your product, and will open it exactly once on a phone.
The problem with sending files
The default way an agent shows a seller their marketing is an email with attachments. It works, in the sense that the seller receives the attachments. Everything after that is where it falls apart.
- Feedback comes back as prose. "The third photo, or maybe the fourth — the one with the tree — can we not?"
- The file is a copy. The price changes; the copy doesn't.
- You have no idea whether they opened it. Silence could mean approval, disagreement, or a full inbox.
- The spouse who missed the appointment gets a forwarded summary rather than the work.
None of these are technical problems. They're all consequences of the same decision: sending a copy instead of sharing the thing.
What changed when comments landed on the object
The single highest-value change we made was letting a client comment on a specific thing — this paragraph, this photo, this line item — rather than on the document as a whole.
The obvious benefit is precision. The non-obvious one is tone. When a seller has to write "the third photo, the one with the tree," they're composing a complaint. When they click the photo and type "can we swap this one?", they're collaborating. Same request, different relationship, and agents noticed the difference before we did.
Private by default, and we mean by default
The most frequent piece of early feedback was some version of: please make absolutely sure my seller cannot see the draft. Not a feature request — closer to a fear. An agent's drafts are their thinking, and thinking shown to a client at the wrong moment costs trust.
So we made the strictest thing the default. Every asset starts private. Sharing is an explicit act, per asset, and un-sharing takes it back immediately. The portal populates because you decided it should, never because the system finished something.
We could have made it automatic. It would demo better. It would also mean that once — just once, for one agent — a seller would open the portal and read a draft description with a placeholder still in it, and that agent would never trust the product again.
The exception that proves the rule: the transaction ledger defaults to shared. Sellers care intensely about what things cost, and hiding the numbers by default made the portal feel like it was concealing something. Defaults should follow the relationship, not a consistency rule.
Designing for someone who won't learn your product
An agent will use Mareto hundreds of times and can be expected to learn where things are. A seller will open the portal perhaps six times over three months, on a phone, usually in the evening, often while doing something else.
That asymmetry produced most of the design rules:
- No onboarding. If it needs explaining, it's wrong. The portal opens on the thing they came to see.
- No accounts to create. Every step between the link and the content loses people.
- No jargon. Not "assets," not "projects." Their house, and the things you made for it.
- Phone first, honestly. Not a desktop layout that survives on a phone — a phone layout that happens to work on desktop.
- Nothing that looks like software. It should read as the agent's work, in the agent's brand, not as a vendor's dashboard with a logo in the corner.
The thing we didn't expect
Agents started opening the portal in listing appointments. Not as a leave-behind — as the pitch itself. "This is what you'd get, and here's where you'd see it."
That reframed the feature entirely. We'd built it as a delivery mechanism for existing clients and it turned out to be an argument for winning new ones, which is also why it shows up in the pre-listing packet that wins the appointment. The seller isn't evaluating a portal. They're evaluating whether working with you will feel organised, and a link that opens cleanly on their phone answers that faster than a page of promises.
What we'd tell someone building the same thing
Three things, in order of how much they cost us to learn:
- The default is the feature. Everything visible-by-default is a small bet that you'll never be embarrassed. You will be.
- Attach feedback to objects, not documents. It changes what people write, not just where they write it.
- The person you're designing for isn't paying you. They have no patience, no training, and no obligation. That's a good constraint. It removes every feature you were only including because it was easy.