Branch · Self-serve growth

From design drift to design discipline.

I built a versioned design system that keeps shipping fast while holding a unified, measurable brand.

Attribution Cross-platform Journeys Deep linking Analytics Design Systems

Value-led onboarding

Outcome-driven setup and a dashboard that rewards progress.

3-step deep links

Smart templates, live previews, and shareable snippets.

Visual journey builder

Actions and triggers that scale across platforms.

Design system (BDL)

Tokens, icons, and components that ship faster.

-50%

QA time

+15%

Revenue lift

-22%

Churn drop

Branch product collage
Context

Why this work mattered

Branch was already trusted by major apps—but self-serve adoption lagged. Teams relied on demos and integrations that took days. We wanted to make Branch feel as simple to start as copying a link, yet still enterprise-grade under the hood.

User experience at the core

Core problem: "Developers loved Branch. Marketers felt lost."

I joined to bridge that gap—making complex infra understandable, usable, and monetizable for non-technical users.

Three themes

Enable self-serve growth

1) Attribution simplified

  • Re-designed onboarding around desired outcome ("I want to measure campaigns" → guided setup).
  • Visualized key metrics in one dashboard for immediate feedback.
  • Shifted tone from API first to value first — "See which channel drives installs."
Outcome-driven setup flow
Impact: More users completed full setup within the first session; fewer dropped after SDK steps.

2) Deep linking made approachable

  • Turned a developer-heavy flow into a 3-step builder.
  • Reusable QR & Smart Link templates with pre-filled behaviors.
  • Clear guidance ("Choose where this link should open") + live preview/snippets.
QR code and smart link generator
Impact: Setup time dropped from hours to minutes; more cross-team collaboration.

3) Cross-platform Journeys

  • Designed a visual journey builder for if-this-then-that paths.
  • Integrated events across web, app, and email to complete funnels.
  • Reduced visual clutter with modular cards and templates.
Cross-platform journey builder
Impact: Increased repeat session rate and first automation adoption within a week.
Monetize self-serve in-product

Introduced non-collapsible billing nudges and time-based reminders on the dashboard so free-tier customers add payment details before usage spikes. This keeps value in sync with revenue and sustains continued investment in self-serve.

Trigger PQL upgrades

Tuned paywalls and contextual prompts around advanced deep links, plus surfaced pricing and upgrade paths wherever adoption data signalled success. The result: more product-qualified leads without sales intervention.

Safeguard with locks & usage visibility

Created a paywall lockout flow with clear screenshots of paused features, alongside MAU/MEU usage graphs and overage alerts. Users see when they are near limits, understand why access pauses, and can upgrade or pay instantly.

Trust

Make complex tech feel safe

  • Added visual confirmation (“tracking active,” “data flowing”) instead of JSON logs.
  • Built copy-and-verify steps to prevent SDK misconfigurations.
  • Used plain-English error states (“We couldn’t find your app package”).
  • In-product tooltips and docs preview—no tab switching.
Outcomes

Prove value, guard reliability

Platform summary and outcomes
Platform metrics overview
Focus What changed Outcome (approx.)
Onboarding Replaced SDK wall with value-led intro Noticeably higher setup completion
Attribution Unified reporting widgets Reduced confusion, fewer support pings
Deep linking Live preview + shareable templates Faster campaign launch
Journeys Templates surfaced earlier More automations created per user
For teams

Build for teams, not just users

  • Introduced team spaces — clear roles for marketer vs developer.
  • "Share project" replaced "invite via email" → less friction.
  • Added activity logs for transparency and trust.
Team collaboration cards
Impact: Smoother collaboration and fewer handoff gaps.
Feedback loop

Analytics that teach

  • Designed modular analytics components for install, retention, and funnels.
  • Created visual states: "learning," "stable," "trending."
  • Framed metrics as stories — "Your QR codes drove X% installs this week."
Analytics dashboard with modular components
Design System

Beyond features — Branch Design Library

  • Started BDL — unified tokens, icons, interactions.
  • Migrated key modules (cards, forms, tooltips) across teams.
  • Established usage guidelines to reduce dashboard inconsistencies.
Branch Design Library components
Impact: Faster shipping, shared language, accessible documentation.
Notes

Learnings and what’s next

Learnings

  • Design from user intent, not feature parity.
  • Visibility builds trust — “You can see it working.”
  • Developer empathy improves decisions for everyone.
  • Systems work scales your time more than any single feature.

What I’d explore next

  1. Adaptive onboarding based on role detection (dev vs marketer).
  2. AI-assisted documentation within setup flow.
  3. Integrations playground for testing without live data.
Honesty

Risks I owned

  • Simplifying could hide flexibility → solved with progressive disclosure.
  • Parity between new UI and legacy API dashboards.
  • Ensuring design tokens synced across codebases.
Result

Product-led self-serve

Branch’s self-serve platform became faster to adopt, clearer to use, and more trustworthy to scale. Our growth motion moved from sales-assisted to product-led.

Want to dive deeper?

Let's chat about designing trustworthy AI, running growth experiments, or how I can bring this playbook to your team.