Overview
At Bunk I designed and co-built the tenancy applications and offers flow, the point where a group moves from interest to legal commitment.
In shared renting, the hardest part is not choosing a house, it is coordinating people. Multiple tenants must accept, verify, and commit at different times while landlords try to understand whether the tenancy is actually going ahead. I worked with the founders to turn this from a messaging problem into a visible process.
My role
Product design, UX, Angular and Firebase implementation in a zero-to-one startup team.
I led the interaction model and collaborated closely with the founders to define the real-world states of a tenancy, then implemented the UI around those states so the product matched how renting actually works.
Approach
I treated the tenancy as a shared state rather than a set of forms.
Instead of asking users to manage paperwork, the interface communicates progress. Every participant can act independently while contributing to one agreement outcome. Verification checks happen before commitment so trust is established early rather than blocking the final step.
Principles
- Visible progress with verification embedded
- Individual actions with shared readiness
- Verification before agreement
- Asynchronous completion without confusion
The flows
The system is made of three connected journeys: landlord actions, tenant journeys, and a shared coordination layer.
Landlord flow
Landlords manage readiness, not people.
- Review applicants
- Issue an offer to the household
- Monitor completion
- Proceed when ready
The dashboard replaces chasing messages with a single status view.
Tenant flow
Each housemate completes a guided journey.
- Receive invitation and context
- Complete identity and referencing checks
- Accept responsibility
- Prepare payment
Tenants can enter and leave freely without blocking others.
Multi-tenant coordination
Individual progress feeds a shared agreement state.
- Everyone sees who is outstanding
- Invalid steps are prevented
- The next stage unlocks automatically
The product answers the question “are we sorted yet?” without conversation.
Implementation
- AngularJS component architecture
- Shared tenancy state service
- Server-driven stage transitions
The UI mirrors the legal order of events so users cannot make mistakes and support overhead stays low.
Outcome
Tenants understood exactly what to do next and landlords acted only when the group was ready. Agreements progressed predictably without coordination overhead.
Technologies used
Reflection
This project reinforced a pattern I use often. Many operational problems are not UI problems but state problems. When software represents the real process clearly, collaboration becomes simple.


