Who will use this, and how?
Sign-up, account settings, dealership staff accounts, an article editor. Most companies have these, and none of them is new. What this case shows is that I did all of it myself, from deciding who each screen is for to the data structure, wireframes, design and code. At most companies that work is split between a PM, a designer and a few developers.

From the user to the code
Every feature in this case went through the same steps, and I did each of them:
All of it was built inside a five-year-old codebase, so each new screen had to fit the data and pages that were already there. The users were different every time: individual sellers used to Facebook, dealership staff selling the same stock, and our own team running the site.
Users new to the web
Most of our sellers are used to Facebook rather than websites, and Facebook accepts whatever you type. Most people in Cambodia stick to a handful of big apps, so forms that check what you enter are new to a lot of them. We also never know how keen a seller is, and one confusing step can be enough for them to leave. So every form needed checks and suggestions that help without getting in the way.
When people made mistakes, it wasn't carelessness. They were bringing habits from apps they knew to a kind of product they hadn't used before, so each mistake told us something about the design.
Features customers see
Sign-up, contact and dealership accounts, the screens sellers and dealership staff use every day.
Simple tasks failed
When our first dealership started using the seller tools, staff mixed up the two profiles. Some put their own photo where the dealership logo should go, and typed the dealership's details into their personal profile.
On top of that, each type of seller sees a slightly different version of the product, and from my own account I couldn't see what they were seeing.

Help them inside their own account
Better forms help, but some sellers will still get stuck, and it doesn't take much for them to give up. More instructions wouldn't change that. Having our team step in does.
With the seller's permission, our team can open the site as that user and see exactly what they see, whether it's where they got stuck or a bug that only shows up for their type of account. We sort it out together and they carry on, without losing their ad.
Each session is clearly marked. A banner shows whose account it is and that any changes are saved to it, and one click ends the session.


One seller, more than one number
Buyers and sellers sign in with Google, Facebook or Telegram, and posting an ad needs a verified phone number. That part is fairly standard.
Many Cambodians carry a number for each mobile network, because calls work best within the same network. So sellers often want a different number on their ad from the one they signed in with.
Instead of making them swap their sign-in number, every number a seller verifies is linked to the same account. They can post with any of them and sign in with any of them, and they always end up in the same account.

One tap to reach the seller
Most buyers want to message the seller on Telegram, but to do that they first have to save the number and check it has a Telegram account. A Telegram button skips all of that.
For sellers, being easier to reach means more buyers get in touch, so every ad in Manage Ads reminds them to add their Telegram username.

One dealership, many staff
Several staff sell the same stock. When they posted from their own accounts, cars got listed twice and nobody could see what the others had posted. Separate accounts couldn't solve that, so dealerships needed their own setup, which I built as the launch got close.
Buyers see one dealership rather than a handful of separate sellers, which helps the dealership build a name on Carmate. Tags like Power Seller help too.

Shared systems our team uses
What our team uses to run the platform and publish content.
Articles built from blocks
Our own team uses the platform too. Article categories were a fixed list in the code, with no groups or subcategories, which didn't match how the news pages had been designed. I rebuilt it to match, borrowing a lot from my years of using WordPress.
- 01
Categories that match the site
A category manager where the team adds categories, groups that collect several categories under one tab, and subcategories, each with its own URL and a switch to show or hide it.

- 02
Articles sorted by category
The article list follows the same tree, with counts for each category, and shows each article's status, category and number of blocks.

- 03
Built from blocks
Articles are made of blocks: heading, text, image, gallery, video, pros and cons, tables, price tables, model listings, cars for sale, call to action and FAQ. Major blocks have variations, so a new kind of content means adding a block rather than building a new page.

- 04
Preview before posting
Whoever writes the article can preview it on desktop and mobile before it goes live.
