Case study · brand + product, done end to end · 2025 / 26
Mom was right.
It’s that damn phone.
ZenMode is an open-source, offline-first Android launcher that turns the volume down on your phone. It also ships the world’s first buddy accountability feature inside a launcher (I looked, nobody had done it). I owned all of it: brand, product, a token-driven design system, a physical focus gadget, and the analytics that prove the whole thing isn’t just vibes.
One product.
The whole circus.
It started as a weekend hackathon launcher and refused to stay small. It grew into brand, merch, a physical gadget, and a real growth loop. A designer-led 0→1, built loudly in public.
Brand, product design, the design system, motion, and the analytics wiring. Basically all of it.
A FOSS United ’26 sprint that quietly became a real Play Store launcher.
Figma variables and tokens, native Android, and PostHog watching the whole thing.
Shipped open-source alongside the Chennai FOSS community. Good people.
The home screen
is the first fight.
“Bro, hear me close. Life is too short. You get about 4,000 weeks. Let’s make ’em count.” The little speech behind every decision on this project.
Every doom-scroll starts on the home screen. Screen-time dashboards tell you the bad news after it happens, and blockers feel like getting grounded, so they get uninstalled by Tuesday. The one surface you touch a hundred times a day was just... sitting there, doing nothing helpful.
So the bet was: make mindfulness ambient and social instead of bossy. The rules I gave myself shaped everything. It had to be offline-first (your data stays home), open source (trust, but verifiable), and live inside Android’s launcher sandbox, where every permission is one more place a signup quietly dies.
Poke at it until
the patterns confess.
Behaviour research, a pile of competitor launcher audits, and mindful-tech studies all pointed at the same six truths. Here they are.
Awareness beats blocking
Hard blockers get switched off. A gentle nudge in the moment gets tolerated, and even repeated.
Guilt kills retention
Shaming dashboards make people close the app and feel bad. Playful framing makes them come back.
Accountability is social
People change for a friend, not a chart. Nobody wants to lose the screen-time battle to their buddy.
Permissions are the funnel
Usage, notification, overlay, and accessibility grants are exactly where installs quietly go to die.
Ugly never goes default
A launcher is on-screen all day. If it isn’t genuinely nice to look at, nobody makes it their home.
Privacy is the promise
A wellbeing app that phones home is a bit of a hypocrite. Offline-first is a brand value here, not a footnote.
Sketch, ship,
snoop, repeat.
Low-fi flows became a shipped launcher fast, then every change after that took orders from real PostHog behaviour instead of my opinions.
Nail down the mindful home screen and the scariest thing to test first.
Rough flows for onboarding, permissions, the overlay, and buddy pairing.
Figma variables and components so screens stay tidy at speed.
Native Android to the Play Store, out in the open, source and all.
PostHog funnels rat out the drop-off, and the next round listens.
Glanceable stats
Your screen time and your buddy’s sit side by side on the home screen. A live scoreboard, not a guilt trip.
Streaks that stick
A visible streak turns a good day into a run you really don’t want to break.
Search-first calm
A quiet grid and one search bar, instead of the usual wall of dopamine icons.
The actual
Play Store listing.
Five frames, exactly as they ship: mindful screentime, a zen buddy, a shared journey, mindful unlocks, and the doom-scroll intervention going “bro, we’re losing zen”.
A design system
that actually lives.
Type, grid, icons, and components, documented as a public, MCP-ready system. So the brand scales from one screen to the whole ecosystem without me babysitting it.
Geometric display for confidence, humanist body for calm, readable UI.
One stroke weight, rounded joins, same across app, gadget, and web.
Rounded, elevated cards carrying stats, overlays, and settings the same way everywhere.
A tidy system shell with launcher patterns and machine-readable tokens.
Semantic tokens,
one source of truth.
Every colour is a semantic Figma variable pointing at a global token. So light, dark, and the physical gadget all resolve from the same names. Change the meaning once, not a hundred hex codes by hand.
Exported as W3C design tokens (.tokens.json) from Figma variables, all pointing at the Global Tokens collection.
One language,
three moods.
The same semantic system runs light and dark UI and the gadget’s ambient ring. Colour carries meaning, so focus, reminder, and break read instantly no matter where you are.
FocusGreen · zen-base
Deep-work mode. The ring glows a calm green. You’re in the zone and the streak is safe.
ReminderAmber · nudge
A soft amber tap on the shoulder when you drift. Noticed, never naggy.
BreakRed · doom-scroll
Red means a line got crossed. Time to look up and take a breather.
Three loops,
one habit.
The product is built from three reusable behaviour modules. Each one is measured on its own, and each one only earns its place if it lifts retention.
Screen-time awareness
Your usage lives on the home screen as a playful, glanceable stat, not buried six taps deep in settings. Awareness right when it counts, every unlock.
Doom-scroll intervention
After roughly 20 minutes of mindless scroll, a gentle overlay shows up. “Remind me in 4h” respects your call, because the goal is a behaviour change, not a jump-scare.
Buddy accountability · world first
Pair up with a friend and your screen-times duke it out live on each other’s home screen. The first social accountability loop ever built into a launcher, and honestly the most fun part.
Six touchpoints.
One zone.
ZenMode isn’t just a screen, it’s a whole vibe that spreads. The brand holds together from an app icon to a physical gadget to a sticker on someone’s laptop.
The launcher
A mindful, good-looking Android home screen. The core product, live on the Play Store.
Focus companion
A physical desk gadget with an ambient LED ring and a screen-time display.
Brand & campaign
The “Mom was right” hero, the neon-green system, and a voice that’s bold, warm, and relentlessly positive.
Sticker pack
Real merch that turns users into walking billboards. A five-frame sticker sheet.
Design system
A public, MCP-ready token system so contributors can extend the brand without breaking it.
Community & code
Shipped in the open with FOSS United Chennai. The repo counts as a touchpoint too.
Merch that
travels.
Five frames of pure ZenMode energy: mindfulness meters, buddy faces, a 4,000-weeks reality check, some deep-work code, and FOSS Chennai pride. Only positive vibes allowed.
Real booth stickers, printed for FOSS United Chennai. Broh, don’t ghost us. Drop your ZenMode vibes and tag @ZenMode on LinkedIn.
Focus, made
physical.
A privacy-first desk companion that takes ZenMode off the screen entirely. An ambient LED ring, a dot-matrix screen-time display, USB-C, a speaker. Thoughtfully over-engineered, every layer.
Soft glow, always subtle. Focus, reminder, and break at a glance.
“2H 34M” on a dot-matrix face. Clear, and always in view.
Charge with zero fuss, check the battery at a glance.
Pocketable, minimal, timeless. No tracking, not now, not ever.
PMF is a signal,
not a feeling.
Every loop is wired up. Four funnels answer the only question worth asking: is this actually valuable, again and again? Retention, measured with PostHog’s built-in analysis, is the honest answer.
Do they come back?
The strongest sign the product is worth something on repeat. D1, D7, D30, plus stickiness among the people who finish the core loops.
day_1_active→day_7_active→day_30_activeSetup & first buddy
Install, to connected buddy, to retained. Where permissions and pairing decide whether the first session even survives.
app_first_open→onboarding_started→permission_granted→launcher_set_default→setup_completed→buddy_connected→retention_day_30_activeNoticed, tolerated, useful
Not “did we interrupt?” but “did the interrupt change anything or just get swatted away?” The 24h repeat rate is the tell.
doom_scroll_threshold_reached→overlay_shown→overlay_dismissed→remember_me_selected→overlay_action_takenReal accountability?
Only worth anything if connected users stick around better than solo ones. That gap is the proof the world-first feature actually does something.
buddy_share_started→buddy_code_copiedorbuddy_code_shared→buddy_code_pasted→buddy_connectedThe event taxonomy
Sixteen events, tight little property lists, one clear firing rule each. The plumbing behind every funnel up there.
| Event name | Properties | When it fires |
|---|---|---|
| app_first_open | sourcedevice | Install + first launch |
| onboarding_started | none | User advances past intro |
| permission_screen_viewed | permission_type | Before each permission dialog |
| permission_granted | permission_type: usage|notif|overlay|acc | Permission approved |
| launcher_set_default | success: true/false | Default launcher set |
| setup_completed | time_taken_secpermissions_granted_count | All setup done |
| doom_scroll_threshold_reached | app_name | 20 min mindless scroll |
| overlay_shown | type: doom_scroll | Overlay appears |
| overlay_dismissed | type: doom_scroll | User closes overlay |
| remember_me_selected | duration: 4h | “Don’t remind for 4h” clicked |
| overlay_action_taken | action: mindful|skip|open | Any overlay response |
| buddy_share_started | mode: manual|random | User starts buddy flow |
| buddy_code_copied | mode: manual|random | Code copied |
| buddy_code_shared | channel: whatsapp|sms | Code shared externally |
| buddy_code_pasted | mode: manual|random | Other user pastes code |
| buddy_connected | mode: manual|random | Buddy pair confirmed |

13 · the design across the journey
From screen
to space.
Keep scrolling. Here’s how one mindful idea travels from a launcher, through a system, into a physical thing, and out into a community.
It starts on the home screen
The launcher makes screen-time ambient and social. The very first surface of the brand.
Tokens keep it honest
Semantic variables carry the same meaning from pixels to LED, so nothing quietly drifts.
2H 34MThen it leaves the screen
The companion gadget brings focus to your desk. Offline, ambient, and pleasantly real.
No tracking · everAnd spreads in the open
Shipped with FOSS United Chennai. Open source, buddy-powered, #InMyZone.
Ship in public.
Let data decide.
“The buddy feature only counts if paired users actually stick around longer. Everything else is just a nice screenshot.” The thing that kept me honest.
Making mindfulness playful and social instead of restrictive turned a wellbeing app into something people actually keep. The launcher-native buddy loop is genuinely new, and genuinely fun.
Permissions are the funnel, full stop. I’d instrument and redesign the grant flow even earlier, because that’s where the biggest silent drop-off is hiding.
Prove the retention bump for connected pairs, harden the design system for contributors, and drag the physical companion from render to real prototype.
ZENMODE