A habit loop that doubled trial conversion
Free-trial → membership conversion went from 11% to 22%, monthly check-ins rose 19%, and one-month retention climbed from 49% to 64%. I designed the loop behind those numbers for Letswork (a trial goal, a routine members set themselves, and a three-month journey), and read the impact straight out of the product analytics.
- Role
- Product Design
- Product
- letswork.com
- Timeline
- 1–2 weeks
- Focus
- Trial churn, retention, habit formation
Omar AlMheiriFounder & CPO
Suhaib AhmedEngineering Lead
The short version: Letswork sells a subscription to a network of workspaces. Trial users were arriving, checking in once, and disappearing. I designed a three-act habit loop: a trial goal sized to be winnable, a productivity routine the member sets themselves, and a twelve-week journey generated from that answer. It moved trial conversion, retention and churn, and produced one result nobody designed for: people started subscribing before the trial was over.
Letswork is a flexible-workspace network spanning 44 countries across the Middle East, Pakistan and Europe, closer to ClassPass than to a landlord. Members hold a subscription and spend credits to check into third-party venues: cafés, coworking floors, hotel lounges, studios.
Credits are the only variable in the business. Every plan carries the same perks, you’re only choosing how many credits you get each month. Which means the whole company rests on one behaviour: does working somewhere else become a routine, or stay a novelty?
I came in as the product designer on a deliberately small team. Omar, the founder and CPO, owned the problem and the commercial constraints around it. Suhaib, the engineering lead, owned what could actually be built and how fast. I owned the loop itself, the mechanics, the flows, the interaction craft, and the working prototype the build was specced from.
The whole thing went from brief to shipped loop in one to two weeks. That pace is only available to a group this small and this senior, and it changed how I worked. I designed the screens in Figma, built them into a running prototype with Claude Code, and staged every cycle on Vercel, so reviews were arguments about a real product on a real phone, not opinions about screenshots.

The free trial was doing its job right up until the moment it mattered. People signed up. People checked in. Once.
Then nothing. The trial would run down and quietly expire, and a user who had already had a good experience never came back for a second one.
“Users would start their free trial and then go blank. They’d make a check-in and no repetition, not because they didn’t like the experience, but because the app was not nudging them properly for any action.”
That distinction is the whole brief. This wasn’t a satisfaction problem or a pricing problem, and no amount of polish on the check-in flow would have touched it. It was an absence, the product had no opinion about what you should do next, so most people did nothing.
A trial is only worth what it converts. Ours was giving people one good day and then leaving the room.
Before I designed anything, I audited what was there, the home a trial user lands on, and the whole path that got them there. Neither was broken. Both were silent.


The instinct in this situation is to reach for notifications. We didn’t. A reminder tells you to do something. It doesn’t give you a reason.
So instead of nagging people through the trial, I gave the trial a shape: a small, explicit goal you could see from the home screen, and, critically, one you could actually finish with the credits you’d been given.
Then, once that goal was met, the loop widened: a routine you set for yourself, and a three-month journey generated from it. Three acts, one repeated action.

On sign-up, the interface reorganised itself around a single target: a dynamic number of check-ins, derived from the plan the user had picked for their trial.
The constraint I held hardest was that the goal had to be winnable. A goal you can’t reach on the credits you were given isn’t motivation, it’s a paywall wearing a progress bar. So the target was always sized against the trial credits.
It worked. Trial users started using the app far more inside the trial window. But the more interesting result was the one I didn’t plan.
A trial goal small enough to finish inside the free credits, so a trial user has a reason to make a second check-in.
I designed the goal to drive a second visit. The early-activation pattern fell out of the credit maths on its own, and turned a retention mechanic into an acquisition one.
Scroll →
Someone with 15 trial credits checks in at a 10-credit space and likes it. To finish the goal they need one more check-in, and the space they want is the one they already know. Five credits won’t cover it.
So they subscribed. During the trial. A mechanic built to fix retention turned out to pull subscription activation forward, because the goal gave people a reason to care about their credit balance while they still had something to spend it on.
Once the trial goal was complete, or the trial had run out, we asked one question: how many days a week do you work remotely?
Say three, and the product builds around three. That single answer generates the twelve-week journey, sets the weekly target, and defines what counts as a good week for you rather than for the average user.
It also does something quieter and more important: it makes the goal theirs. Nobody argues with a target they set themselves.
That answer then becomes the most-looked-at component on the home screen. Check in on a day you planned and it’s a productive day. Miss one and the app says so plainly, without theatrics, and, crucially, it shows you the days still ahead of you.

This is the piece I’d defend hardest. Almost every habit product scores the past, streaks, calendars, red marks. Showing the upcoming days turns the same component from a report card into a reminder, and it arrives while you can still do something about it.
With a routine in place, the loop finally had somewhere to go: a twelve-week Letswork Journey. Four check-ins a week unlocks a named badge and pays credits back into the wallet.
The payout curve isn’t linear. Every fourth week closes a month and pays roughly double, 20, 25, then 50 at the finish. Months are the unit a subscriber actually feels, so the reward peaks exactly where the renewal decision lands.
Paying credits rather than points is the part that makes this more than decoration. The reward for building the habit is more of the thing the habit is made of, which means the loop funds itself and every badge has a real, spendable value the member can feel.

The journey rewards checking in. It doesn’t care where. But a venue partner very much does, their side of this business is footfall they can count on, and a member who spreads four visits across four venues is worth less to all four of them than a regular is to one.
So the loop got a second axis: a leaderboard per venue, and a monthly title for whoever tops it, the mayor of that space.
Leaderboards are usually where good retention intentions go to die. A top-10 board is motivating for ten people and quietly demoralising for everyone else, and a permanent champion tells the rest of the room not to bother.
So the board never shows a top-10. It shows the handful of people directly around your rank, where the next place up is always a visit or two away, and the mayor title resets every month, so the crown is never permanently taken. It also has to work on day one, with no one on it: hence the empty state and the “you’re the first one here” moment.

Then the half that makes it more than a vanity metric. Becoming the mayor is only worth something if the venue notices. So when the mayor checks in, the venue-manager app interrupts with it, not as a feed item, as an event.

The sheet leads with why it matters rather than who it is, because a manager reading it has about three seconds and a queue. It carries the streak, the visit count and their usual arrival time, enough to greet someone properly.
That closes the loop across both sides. A member returns to the same venue to defend a title. The venue is told their regular just walked in and treats them like one. The member gets a reason to come back that has nothing to do with points. The mechanic manufactures the recognition it’s pretending to measure.
Here’s the question the journey creates for itself. Twelve weeks in, a member has built exactly the habit we wanted, and has nothing left to climb.
That’s a real cliff. A member at week 13 has just as little to lose by cancelling as one on day one, because everything they earned has already been spent. So a later phase of the engagement added a layer designed to accrue instead of reset.
Scroll →
Tiers are earned on lifetime credits spent, so they survive a bad month, a pause, even a cancellation, which is precisely what makes them worth not losing. Where the journey was a sprint with a finish line, this is a record that only grows.
Each tier pays cashback, which raised a presentation question with a surprisingly strong answer. Members get two things back on a booking, a waived access fee and tier cashback, and showing both looks more generous. I made the opposite call and wrote it into the function that computes it, so no future screen could quietly break it.
The cashback itself lands in a Vault that unlocks on the 1st of each month rather than trickling in invisibly, a monthly beat you can look forward to, and the thing members actually open that screen to see.
A check-in is the single most repeated action in the product. Everything above is scaffolding around it, so it had one job: make four taps a week feel worth doing.
The rule that took longest to get right was the smallest. Early builds flipped the earned circle to 🔥 the instant you tapped, while the progress bar was still travelling toward it. It felt cheap, and I couldn’t say why until I wrote the constraint down:
“Unless the bar reaches the current check-in, it should not change to the fire emoji.”
One line, and it gates four things at once, the emoji flip, the counter tick, the subtitle change, and the confirm haptic, so the reward and the feeling land together instead of a beat apart.

The clearest evidence that this worked didn’t arrive in a dashboard. It arrived in a support chat.

Nobody asked them this. They opened a support chat, screenshotted their own progress, and checked what pausing would cost, three weeks into a twelve-week journey, one check-in into the month. That is a switching cost, in a member’s own words.
Three weeks earlier this person would have paused without a second thought, there was nothing to think about. Now pausing had a price, and they wanted to know what it was before they paid it.
That is the churn mechanism made visible. We didn’t reduce cancellations by making it harder to leave. We reduced them by giving people something they’d built and didn’t want to abandon.
It also retroactively justifies the fairness rules in the sections above. Once members care about their journey this much, quietly resetting it for a missed week stops being a nudge and starts being a betrayal. The switching cost is only defensible because the guard rails are real.
And it exposed a gap I’d missed: they had to ask. The consequences of pausing lived in a support conversation instead of in the product. The later pause flow answers it directly on screen. Your credits are held, not forfeited, and your tier is saved. But that question should never have needed a human.
On the quantitative side, the two numbers that mattered most both moved, and the first one moved further than I expected.
Trial conversion doubled. Before the loop, roughly one in nine people who took a free trial went on to buy a membership. After, it was closer to one in five. That is the trial goal doing exactly what it was designed to do: giving someone a reason to come back a second time, while they still had credits to spend.
And the habit got denser. Members who were already active checked in about 19% more often, roughly four and a quarter visits a month against three and a half before. That second number is the routine and the journey working on people who’d already subscribed.
They also stuck around longer. Of members who checked in one month, the share who came back the next rose from 49% to 64%, and the lift held across the following months too. That’s the number I care about most, because retention is the engine of lifetime value: a member who keeps showing up keeps their subscription, and every extra month of habit is an extra month of revenue. I’m quoting the retention directly rather than a dressed-up LTV figure, the return rate is mine to measure, but turning it into a dirham LTV needs the revenue and churn definitions that are the client’s to set.
The result I keep coming back to isn’t on that table though. Early activation, trial users subscribing before their trial ended, wasn’t a goal, a metric, or a line in any brief. It emerged from the credit arithmetic of a mechanic built for something else entirely, and it’s the clearest evidence I have that the loop was tuned to how the business actually works.
The lesson I keep is that the nudge has to arrive before the miss. Everything that worked here, the trial goal, the upcoming days on the work-week strip, the freeze that buys time instead of taking it away, is the same idea in three costumes: reach people while they can still act, not after they’ve failed.
The data came first. The analytics already showed trial users going quiet after a single check-in, we saw it, we wanted to fix it, and the loop was the answer to that. What I’d do differently is lean on that same data harder while designing: I sized the trial goal against the plan and shipped it, where I’d rather have tested a couple of goal sizes against each other and let the drop-off curve pick the winner, instead of reading whether it worked only afterwards.
Where I’d take it next: the journey is still a solo activity. The strongest pull to show up somewhere isn’t a badge, it’s knowing who else will be there. The version I want to build is one where your routine is visible to the people you actually want to work near, and a productive day is something you have with someone.
Thanks for reading.
If you made it this far, we’d probably enjoy building something together.






