
2024 · heyroom
2024 · heyroom
Free app to first revenue
Free app to first revenue
Free app to first revenue
Designed heyroom’s first paid feature without killing engagement.
Designed heyroom’s first paid feature without killing engagement.
Designed heyroom’s first paid feature without killing engagement.
Product
Product
heyroom; a C2C roommate matching app basis vibes, 30k users, Germany
heyroom; a C2C roommate matching app basis vibes, 30k users, Germany
Role
Role
Sole Product Designer
Team
Team
Founder, CTO, Developer
Timeline
Timeline
Oct–Dec 2024
CONSTRAINT
CONSTRAINT
One developer, different time zone, investor deadline in 8 weeks
WEBSITE
WEBSITE
Outcome
Outcome
+14% DAU · No increase in drop-offs · 12 payments in week one
+14% DAU · No increase in drop-offs · 12 payments in week one
+14% DAU · No increase in drop-offs · 12 payments in week one
Product
heyroom; a C2C roommate matching app basis vibes, 30k users, Germany
Role
Sole Product Designer
Team
Founder, CTO, Developer
Timeline
Oct–Dec 2024
CONSTRAINT
One developer, different time zone, investor deadline in 8 weeks
WEBSITE
The situation
The situation
The situation
heyroom was a free C2C app with 30,000 users and zero revenue.
heyroom was a free C2C app with 30,000 users and zero revenue.
The founder needed to demonstrate revenue traction to investors within 3–4 months. He wanted to make room applications which were unlimited and free into a paid action.
heyroom has two user types: Searchers looking for rooms, and Offerers listing them. This change only affected Searchers that is, the side generating demand.
The founder needed to demonstrate revenue traction to investors within 3–4 months. He wanted to make room applications which were unlimited and free into a paid action.
heyroom has two user types: Searchers looking for rooms, and Offerers listing them. This change only affected Searchers that is, the side generating demand.
I asked whether we should fix existing UX problems first. The app had overloaded screens, spacing issues, and onboarding errors. But founder needed to show revenue proof to the investors first for future sustainability of the company.
I asked whether we should fix existing UX problems first. The app had overloaded screens, spacing issues, and onboarding errors. But founder needed to show revenue proof to the investors first for future sustainability of the company.
The risk was real. Searchers had never paid for anything in this app, and room supply was limited. If users paid and then couldn't find suitable rooms, they'd leave permanently. Whatever we built had to introduce payment without breaking the core experience.
The risk was real. Searchers had never paid for anything in this app, and room supply was limited. If users paid and then couldn’t find suitable rooms, they’d leave permanently. Whatever we built had to introduce payment without breaking the core experience.
Key decisions
Key decisions
Key decisions
Pricing Models we evaluated and rejected
Pricing Models we evaluated and rejected
Subscription
Room search ends once you move in. A monthly subscription charges users for time they don't need.
Room search ends once you move in. A monthly subscription charges users for time they don’t need.
Credit system
Users have to track a balance and calculate costs per application.
Users have to track a balance and calculate costs per application.
Hard paywall
With limited room supply, users who paid and found nothing would leave permanently.
With limited room supply, users who paid and found nothing would leave permanently.
Freemium over hard paywall
Freemium over hard paywall
I worked with the founder to align on a freemium model: 3 free applications per day, with the option to buy bundles of 10 or 25 more. Users experience value first and pay only when they want more.
I worked with the founder to align on a freemium model: 3 free applications per day, with the option to buy bundles of 10 or 25 more. Users experience value first and pay only when they want more.

Working through the pricing strategy with the founder
Reframing the success metric
Reframing the success metric
Revenue was the obvious KPI, but I pushed back. With limited room supply, low revenue wouldn't mean the design failed. It could just mean there weren't enough rooms to apply to. The metric that would actually tell us if the model & design was working was engagement: were users coming back daily to use their 3 free applications? Were drop-offs increasing or staying flat? We tracked both.
Revenue was the obvious KPI, but I pushed back. With limited room supply, low revenue wouldn’t mean the design failed. It could just mean there weren’t enough rooms to apply to. The metric that would actually tell us if the model & design was working was engagement: were users coming back daily to use their 3 free applications? Were drop-offs increasing or staying flat? We tracked both.
The goal: Introduce a freemium model that prevents drop-off, increases daily engagement, and generates revenue.
Design evolution
Design evolution
Design evolution
01
01
01
Framing limits as benefits
Framing limits as benefits
Every piece of copy was written to make the free allowance feel generous, not restrictive. 'You can only apply to 3 rooms' feels like a restriction. 'You get 3 free applications' feels like a gift. Same rule, completely different perception. This was directly tied to our goal of preventing drop-off.
Every piece of copy was written to make the free allowance feel generous, not restrictive. ‘You can only apply to 3 rooms’ feels like a restriction. ‘You get 3 free applications’ feels like a gift. Same rule, completely different perception. This was directly tied to our goal of preventing drop-off.




02
02
02
Users always know where they stand
Users always know where they stand
I designed a feedback loop for every stage: a welcome card for first-time users, a counter showing remaining free applications, a modal when applications run out with a timer for the next reset, and a purchase dialog for buying more. No dead ends - every state tells the user exactly what to do next.
I designed a feedback loop for every stage: a welcome card for first-time users, a counter showing remaining free applications, a modal when applications run out with a timer for the next reset, and a purchase dialog for buying more. No dead ends - every state tells the user exactly what to do next.

03
03
03
Testing with real users
Testing with real users
I tested the prototype with 5 users in Berlin who were actively living in shared apartments.
3 key findings:
Info cards showing application count looked tappable - I darkened them to read as status indicators, not buttons.
I tested the prototype with 5 users in Berlin who were actively living in shared apartments.
3 key findings:
Info cards showing application count looked tappable - I darkened them to read as status indicators, not buttons.

Users were clicking pricing cards without reading benefits - I restructured to show benefits before pricing, following the principle of establishing value before cost.
The overall UI felt dense, but I left that alone - fixing existing visual debt wasn't in scope for this release.
Users were clicking pricing cards without reading benefits - I restructured to show benefits before pricing, following the principle of establishing value before cost.
The overall UI felt dense, but I left that alone - fixing existing visual debt wasn’t in scope for this release.

04
04
04
Catching the localisation problem
Catching the localisation problem
We designed in English and missed that German words are significantly longer. The horizontal unlock card was covering the room listings in the German version. I consulted senior designers working on multilingual apps and switched from horizontal to vertical layout. Fix took 3–4 days.
We designed in English and missed that German words are significantly longer. The horizontal unlock card was covering the room listings in the German version. I consulted senior designers working on multilingual apps and switched from horizontal to vertical layout. Fix took 3–4 days.

05
05
05
Prototype
Prototype
Shipping
Shipping
Shipping
There was no design system and no Figma files when I started. The developer was working from screenshots and video recordings of other apps shared by the founder, which led to misinterpretation and inconsistent UI.
There was no design system and no Figma files when I started. The developer was working from screenshots and video recordings of other apps shared by the founder, which led to misinterpretation and inconsistent UI.
I introduced Figma as the single source of truth for handoff and used Loom walkthroughs to explain flows asynchronously across time zones. This closed the gap between design intent and implementation.
I introduced Figma as the single source of truth for handoff and used Loom walkthroughs to explain flows asynchronously across time zones. This closed the gap between design intent and implementation.
Delivery time dropped from 3 months to 2 months compared to previous feature cycles.
Delivery time dropped from 3 months to 2 months compared to previous feature cycles.

Figma file structure: developer handoff, design reviews, and flow documentation
Outcome
Outcome
Outcome
+14% DAU · No increase in drop-offs · 12 payments in week one
In the first week after launch, daily active users increased by 14% compared to the previous month. Drop-offs did not increase. We defined an active user as someone who opened the app and viewed at least one listing. Users were coming back daily to use their 3 free applications, and some were buying bundles. That proved two things the investor meeting needed: genuine demand on the platform, and willingness to pay.
In the first week after launch, daily active users increased by 14% compared to the previous month. Drop-offs did not increase. We defined an active user as someone who opened the app and viewed at least one listing. Users were coming back daily to use their 3 free applications, and some were buying bundles. That proved two things the investor meeting needed: genuine demand on the platform, and willingness to pay.
Reflections
Reflections
Reflections
Managing shifting priorities
Managing shifting priorities
Working directly with a founder means priorities shift daily. Early on, last-minute changes were derailing both my timelines and the developer's. I started documenting every decision and the reasoning behind it which made it easier to push back, and easier for the founder to see when a change had downstream costs.
Working directly with a founder means priorities shift daily. Early on, last-minute changes were derailing both my timelines and the developer’s. I started documenting every decision and the reasoning behind it which made it easier to push back, and easier for the founder to see when a change had downstream costs.
Designing for German copy from day one
Designing for German copy from day one
I'd design for German copy from the start. Retrofitting the multilingual layout cost 3–4 days we didn't have.
I’d design for German copy from the start. Retrofitting the multilingual layout cost 3–4 days we didn’t have.
Working end-to-end
Working end-to-end
As the sole designer I owned everything from user research and strategy to copywriting and developer support. That forced me to defend every design decision with research and data rather than opinion and to stay focused when feedback came from multiple directions.
