Marco Ramos · Product designer & developer Madrid, ES ·
← All work

Urbiqo · Since 2025

Verifying hosts and tenants before anything goes wrong

How excluded tenants and risk-averse hosts end up on the same platform.

Role
Product Designer, Co-founder & Developer
Discipline
Research · Product design · Design system · Front-end
Year
Since 2025
See it live on staging
On staging Built and live, launch ahead
4 months Research to production UI
2-sided Tenants and hosts, one platform

Madrid is booming and its rental market has not caught up. The filters are stuck in another decade: no permanent contract, no flat. That locks out solvent tenants and leaves hosts choosing from a smaller, samey pool.

The paperwork wall

Solvent, and still locked out

Freelancers and expats hit closed doors, blocked for lacking a standard payslip however solvent they are. Hosts are stuck too: rigid paperwork is the only risk tool on offer, so they use it. Urbiqo does not throw that paperwork away; it adds more ways in. A tenant can name a guarantor, family help counts as a real answer to how the rent gets covered, and an optional background step lets them tell hosts who they are: why they are moving, how they live, how they rented before. Hosts decide on more evidence, and solvent non-traditional tenants get through the door.

The problem was never the listing. It was the leap of faith on both sides of it.

Groundwork

Mapping the full journey

Before any screens, I mapped the complete flow for both sides: every decision point from first login through verification, application and payment. It became the source of truth for what to design first. It also fixed three rules the product had to honour: browsing stays open without an account, verification becomes mandatory at the point of applying or listing, and a verified profile is reusable across applications.

Swim-lane user flow for tenants and hosts, from first login through verification, application and payment
The full flow, both sides, from first login to payment.
Detail of the user flow at reading size: the host chooses freemium or premium, pays by Visa, Bizum or PayPal, passes the verification check and only then reaches the verified host state
The same map at reading size: hosts pick freemium or premium, pay, and only a verified host gets to list.

Two sides, one problem

The product has to hold two realities at once.

THE TENANT · freelancer, solvent, no payslip

Stable annual income, no fixed monthly contract. They stall at the upload screen because the form expects a payslip that does not exist. They need alternative proofs read as legitimate evidence.

THE HOST · one empty month vs one unpaid month

An empty month costs money; an unpaid month costs more. Paperwork is their proxy for reliability because nothing better is on offer. They need a signal that does not filter out good tenants for the wrong reasons.

The difference Urbiqo bets on: validating reliability, not just salary.

01 · Verification

Fairer screening

I added alternative proofs beside the classic payslip: bank statements and invoices. Employer letters and tax returns were considered and dropped, both lag actual cash flow. Bank statements and invoices reflect it in real time, and validate through OCR with manual review for the edge cases.

A service blueprint maps the backend logic that adapts verification requirements to the user’s status, accepting invoices for freelancers, for example.

Service blueprint mapping frontstage screens against backstage system logic, with conditional workflows for freelancers, OCR validation and risk scoring that triggers manual review
The service blueprint: frontstage screens against backstage logic, with conditional workflows for freelancers, OCR validation and risk scoring that triggers manual review.

02 · Trust

Humanising the transaction

A verified profile travels ahead of the tenant. The host sees the same verification card before any meeting: email, phone, ID and background check. Hosts declare their relationship to the listing too, owner, tenant or intermediary, so applicants know who they are dealing with. Trust is visible on both sides before anyone books a viewing.

Trust and Safety card on a live Urbiqo listing: Email verified, Phone pending, Identity pending
The verification card the host sees before any meeting: one state per signal.

03 · Clarifying

Demystifying the process

Renting is overwhelming enough. The landing page works as a calming filter: the verification journey compressed into four linear steps, understood before anyone creates an account.

Positioning

Where Urbiqo sits

I mapped the Madrid market on two axes: complexity of service and target specialisation. The gap: nobody combines trust-based verification with accessible pricing for freelancers, expats and non-traditional tenants.

Market positioning map placing Urbiqo as the most specialised player against mass-market platforms like Idealista and full-service providers like Vitalhouse. The legend still says Arcano, taped over and corrected to Urbiqo by hand Market positioning map placing Urbiqo as the most specialised player against mass-market platforms like Idealista and full-service providers like Vitalhouse. The legend still says Arcano, taped over and corrected to Urbiqo by hand
The positioning map predates the rename, hence the tape: Arcano then, Urbiqo now, holding the niche between mass market and full service.

The craft layer

Behind the screens

The system underneath: tokens, components and variable theming for dark mode and English/Spanish localisation. Built alongside the product, kept as its own reference.

Urbiqo design system reference sheet with brand identity, typography, colour palette and mobile UI screens
The design system: identity, type, colour and components in one reference.

Third act

Designing it was the easy part

The design was defined, the system documented, the flows mapped. Then I built it, on Next.js. Building your own design is the most honest usability test it will ever get. Every screen I signed off as a designer had to earn its way through real components, real data and real states.

Some decisions did not survive contact with code. A flow that looked clean in Figma met loading states, empty states and awkward real content. I was the designer who had to admit it and the developer who had to fix it, so the iteration loop ran in minutes, not sprints. The product on staging is the result.

One detail only appeared once there was a front end to run it: every section heading draws itself in from the left, behind the terracotta skyline. A motion decision made in code, not in the static design file.

Why Urbiqo

Live on staging today: featured listings; search with type, price and size filters beside a map; listing pages with gallery, amenities and neighbourhood notes; apply and contact host; freemium and premium tiers for hosts, tenants always free; full English and Spanish; a help centre, FAQs and a contact form that routes by topic. The listings are sample data for now, placeholders to exercise the flows end to end until real inventory arrives at launch.

Urbiqo search page: title, with Type, price and size filters above the results grid of six Madrid listings
Search on staging: type, price and size filters over the results.
Urbiqo listing for a private room in Salamanca: gallery, amenities and a neighbourhood map
A live listing: gallery, amenities, neighbourhood notes and map.

Three decisions from the build earned their own labels.

Build 01 · The restless card

The card that could not sit still

Real descriptions vary in length, so the ‘More details’ button pinned after the text could never sit still. The title now clamps to one line, the description to three and the whole card became the click target.

A designed Urbiqo listing card: image, price, title, a location row with a pin, room type and size, amenities, then a description and a More details button
As designed: a location row and a button after a description of unknown length.
The rebuilt Urbiqo listing card: image, price, a one-line title, room type and size and a clamped description, with no button
As built: one-line title, three-line description, the card itself is the target.

Build 02 · Honest pills

A pill should never lie about why it is red

The verification thinking survived into code as the trust and safety card on every listing. Each signal has its own state: a profile can show email verified while phone and identity are still pending. Honest states, not one binary badge.

In the design file the four states were a legend: Active, Pending, Attention and Issue, one pill per signal. In code every pill needed a source of truth and a failure story. A signed-out user stopped being treated as an error, and one blanket ‘something went wrong’ was split into its distinct causes, so a red pill always means one specific thing.

The Urbiqo host dashboard: the signals Email, Phone, Identity, Payout and Agreement each carry their own state, beside a legend of Active, Pending, Attention and Issue
The host dashboard: five signals, five independent states, one legend.

Build 03 · Half the words

Only half the words are mine

Localisation was designed as a variable mode and shipped as one. The same screens run in English and Spanish end to end.

The same Urbiqo listing, in English The same Urbiqo listing, in Spanish
The same listing, English and Spanish, one variable build.

The design file flips every string with one variable mode. The build corrected me: interface copy translates, but listing content lives in the database, so a Spanish page can still speak English wherever the data does. And Spanish runs long enough to truncate cards the English never stressed.

A Spanish Urbiqo listing card with its title truncated by an ellipsis where the shorter English title fit
Spanish runs longer: the same card component, truncated where the English title fit.

What I learned

Designed end to end, then built end to end, by one person, on Next.js. That is the outcome: a two-sided platform running on staging in two languages, from search to application. No user metrics yet, the launch is still ahead, so what follows is what shipping it taught, not what the market said.

Three things Urbiqo taught me:

  • Two-sided trust is its own discipline. Everything that removes friction for tenants, fewer documents, faster checks, adds perceived risk for hosts. Balancing that tension shaped the whole product structure.
  • The gap between a founder’s concept and a buildable product is bigger than it looks. The vision was clear. The design work was turning it into conditional verification logic, system states and edge cases.
  • The visual layer carries more trust than I gave it credit for. People hand over personal documents here; every colour, interaction and line of copy either builds confidence or erodes it. I would budget more time for that layer next time.

Honestly, though

Status and next steps

Staging went live on 6 July 2026 and the platform runs at staging.urbiqo.com, in English and Spanish. It is in active QA now, the day-to-day is correcting what real screens, states and content expose before launch. The bet: put verifiable trust signals beside the rigid contract requirements and the market opens on both sides. Unproven until launch, but the logic holds. If you can verify reliability without demanding a permanent contract, hosts get confidence and tenants get access.

Builtlive on staging, by me, on Next.js
6 Jul 2026went live on staging, now in QA
Q3 2026targeted live release
See it live on staging
Next case study Helping people buy gear without reading an essay first EVVO