Interface design — conversion, retention, system

An app isn't a photo. It's cinema.

For years I designed screens as frozen states. One screen, one mockup. Except a user rarely spends more than 3 seconds on a “final” screen — the rest of the time they're waiting, transitioning, hesitating. Here's how I design those moments, and what they return.

7 design challenges

Real apps, real decisions

Every demo is an app I built and shipped. Scroll through: the problem, the decision, and what came out of it.

Demos play as you scroll

  1. Motion Evolum

    The first 3 seconds

    Make the wait the first ritual

    The problem

    The splash screen is the one screen 100% of users see. Most apps drop a frozen logo there and pray it loads fast.

    The design decision

    The orb breathes: inhale, exhale. Loading time becomes a warm-up — not a waiting room. Then a hero animation carries straight into the home, no cut.

    Motion soothes. Stillness makes people anxious.

    • Animated splash
    • Hero animation
    • Staggered entrance
  2. Conversion BeeDone

    Activation

    Aim at the aha moment, not the paywall

    The problem

    My first version of BeeDone put the paywall on screen one. People saw it, some paid, most left — and plenty cancelled after the trial. They never got time to understand the value.

    The design decision

    Onboarding pushes toward a single act: create your first routine. Prefilled times, days checked by default, a progress bar, and a commitment signature to close the loop.

    On Evolum we measured it: a user who completes 3 rituals stays 3 months or more. We rewired the whole onboarding toward those 3 rituals.

    • Smart defaults
    • Visible progress
    • Active commitment
  3. Conversion UpDrive

    Perceived value

    Lead with the number that matters

    The problem

    A rideshare driver opens their admin app for one reason: to know what they earned. Bury that number in a “Statistics” tab and you've buried the reason to open the app.

    The design decision

    Monthly revenue goes in display type, top of screen, above the ride list. Everything else — profile, subscription, settings — drops one level. Hierarchy is choosing what you accept to make less visible.

    Built from scratch with a CEO and an art director. They discover the app every week on TestFlight.

    • Type hierarchy
    • One screen = one answer
    • Working with an AD
  4. Conversion Strive

    Sharing

    Make the goal public

    The problem

    A private goal negotiates with itself. You make excuses, nobody knows, you quit at no social cost.

    The design decision

    The feed turns a goal into a public commitment: photo, likes, comments. Sharing isn't a button at the end of a flow — it's the core of the product loop.

    30% of users post their first goal. 20% Day-7 retention, above the social-app average.

    • Social loop
    • Public accountability
    • Sharing built into the loop
  5. Retention BeeDone

    Re-engagement

    A notification with something to say

    The problem

    “You haven't opened the app in 3 days.” That's not a notification, that's a guilt trip. It gets muted within a week.

    The design decision

    An AI coach reads the user's context and suggests one precise action, now. The notification carries content, not a reminder — the app has a reason to write, not just a wish to be opened.

    91% engagement across the 8 AI coaches. Generated imagery drove +40% app opens.

    • Contextual notification
    • Content > reminder
    • Funnel adapted to the user
  6. Retention BeeDone

    The long loop

    A streak needs a season

    The problem

    I used a focus app that grew a virtual forest. I'd look at my garden and think: “what is this actually for?” A streak that leads nowhere ends up as decoration.

    The design decision

    Seasons restart automatically, with a competition and a dated end. A broken streak doesn't erase everything: the next season gives you a way back in. And points buy real rewards — cinema, restaurant, a weekend — not badges.

    14.29% Day-7 retention, above the 75th percentile. Grown-ups crave play too.

    • Auto season
    • Forgiving reset
    • Real rewards
  7. System BeeDone

    The system

    Dark mode isn't a theme, it's a contract

    The problem

    The biggest problem with dev-designed apps isn't ugliness. It's inconsistency. A dark mode bolted on afterwards is where it shows: broken contrast, greys invented screen by screen.

    The design decision

    Every colour is a semantic token — surface, text, accent — not a hex value dropped into a widget. Both themes come out of the same file, so no screen can drift on its own.

    Users can't tell you why an app “feels pro.” But their brain detects consistency, or its absence.

    • Semantic tokens
    • Light + dark from one file
    • Widgetbook

The charter

One charter, from site to app

The colours, type and durations below aren't an illustration: they're this site's real tokens, read from the same kind of file that dresses my apps. That's the principle — one file is authoritative, everything else refers to it.

Colour

blue-night#0F172A
amber#F59E0B
off-white#F8FAFC

Amber never exceeds 5% of the surface. An accent colour that's everywhere stops being an accent.

Type

  • Space Groteskdisplay · 600/700
  • Intercorps · 400/500
  • JetBrains Monométriques · 400

Three families, three roles. Mono is reserved for numbers and code — it signals “data,” not “decoration.”

Shape & timing

8 12 16 20
120ms 200ms 280ms 400ms

200-400 ms, ease-out, always. Never bounce or elastic — it's 2026, not 2014.

The method

A design system in 2-3 hours

No Figma. No designer. No three weeks of creative exploration. The real problem was never artistic talent — it's the absence of a coherent reference.

  1. 01

    The feeling in 3 words

    “Premium, calm, trustworthy” doesn't lead to the same place as “fun, energetic, young.” We decide before opening any tool.

  2. 02

    Explore outside your niche

    Copying the best app in your sector gives you a clone. 30 minutes inside real installed apps — not Dribbble shots that never had to handle an empty state.

  3. 03

    Extract the constants

    4-5 colours, the type and its scale, recurring spacing, radii, component states. That's the design system — not a 200-screen library.

  4. 04

    Adapt, don't copy

    What you borrow is the principles: spacing, hierarchy, density. Not the pixels. And pick a model your size — Spotify's system works because they have 200 designers.

The 4th dimension

Dead time is an opportunity

The goal isn't for users to notice the animation. It's for them to feel it without seeing it — like a film score: if you notice it, it failed.

  1. 1 Empty No data. The screen must explain and offer a next step.
  2. 2 Loading Targeted shimmer, branded progress. Never a naked spinner.
  3. 3 Transition Hero animation. The element travels, the user follows.
  4. 4 Interactive The only state most apps actually design.
  5. 5 Feedback The action landed. Otherwise people tap twice.

Most apps design state 4 and endure the other four.

What I do 280ms · ease-out
What I stopped doing 600ms · elastic
Loading targeted shimmer

Circular progress says “it's working.” Shimmer says “it's coming.” The hero says “you're in the right place.”

The toolbox

What I actually apply

Conversion

  • Value before price: product-led, the product sells itself
  • Paywall at the first aha moment — not before, not three screens later
  • Prefilled defaults: every empty field is a chance to quit
  • One CTA per screen, and it says what will happen
  • Social proof at the moment of doubt, not on the home screen
  • Sharing inside the product loop, not at the end of a flow

Retention

  • The notification carries content, never a guilt trip
  • The streak has an exit door — otherwise the first break is the last
  • Seasons that restart on their own: a long loop above the short ones
  • Real rewards over decorative badges
  • The week-2 test: a feature unused at D+14 never will be
  • “It just works” retains for 3 months. “So cool!” retains for 3 days.

Honestly

What I'm not selling

I'm not an art director

I don't start from a blank aesthetic page. I start from a model app, extract a system, and hold it. When there's an AD on the team — like on UpDrive — I work with them, I don't replace them.

“Less is more” cost me MRR

I cut rarely-used features on BeeDone. MRR went down. Some features aren't there to be used, they're there to prove the app is complete. Don't confuse usage with perceived value.

Retention isn't always the right metric

In the product: retention first. In the dashboard, as long as you're not paying for acquisition: MRR. Tracking retention with no ad spend is optimising the aerodynamics of a car that has no engine yet.

Your app deserves better than a frozen screen

Conversion, retention, design system: we look at your product together and I tell you where it's leaking.