phone_android Case Study

NumberLink: Identity with Phone-First Profiles

Replacing friction-heavy email signups with a seamless phone-number based identity system. We built a chat-driven onboarding flow that reduced drop-offs by 40%.

Role

Lead Engineer

Timeline

6 Months

Client

NumberLink

Stack

React, Node.js, MySQL

NumberLink chat-driven onboarding interface showing conversational UI flow with phone number verification and profile setup
speed Performance

98/100

Lighthouse Score

The Challenge

Traditional email-password flows were causing a 65% drop-off rate during onboarding. Users found the verification link process cumbersome, especially on mobile devices where switching apps kills momentum.

We needed a system that felt conversational, instant, and secure, leveraging the device users already had in their hands: their phone.

close

App Switching

Email verification required switching apps, killing user momentum.

lock

Password Fatigue

Complex password requirements caused user frustration and abandonment.

phone_iphone

Legacy Forms

Non-responsive forms created poor mobile experiences.

Friction Points Identified

We analyzed user behavior and identified three critical friction points that were causing the high drop-off rate.

warning

Key Issues

  • close App switching for email verification
  • close Password complexity requirements fatigue
  • close Non-responsive legacy forms
Solution

Chat-Driven Solution

We redesigned the onboarding as a conversational UI. Instead of a form, users "chat" with the system to set up their profile.

Natural Language Input

Inputs are parsed in real-time. Typing "I'm Alan, a designer" auto-fills the Name and Role fields instantly.

AI
Hi! What should I call you?
I'm Alan Bright
Field Detected: Name Success
bolt

Optimistic UI

State updates locally before server confirmation, making the chat feel instantaneous (0ms latency perception).

const sendMessage = (msg) => {
setMessages(prev => [...prev, msg]);
// API call happens in bg
api.post('/chat', msg);
}
view_quilt

Dynamic Component Rendering

The chat interface isn't just text. The server can push interactive widgets (calendars, maps, uploaders) directly into the stream based on context.

calendar_month Date Picker
cloud_upload File Drop
payments Payment

Platform Architecture & Data Flow

High-level overview of the request lifecycle and how data flows through the system.

architecture

Request lifecycle overview

MySQL 8.0 Redis React SSR
devices
Client
HTTPS / WSS
alt_route
Gateway
dns
Node.js
App Cluster
database
MySQL + Redis
sync

Isomorphic Rendering: Initial load is SSR for SEO, subsequent navigation hydrates to CSR for speed.

lock_clock

Race Condition Handling: Redis locks prevent duplicate phone number verification requests.

Performance & SEO Strategy

Since user profiles are public-facing, SEO was critical. We implemented a hybrid rendering strategy.

  • check_circle Server-Side Rendering (SSR) for SEO
  • check_circle Image Optimization with WebP format
  • check_circle First Contentful Paint under 1.2s
// Performance metrics
98
Performance
100
SEO
95
Accessibility
speed

Project Outcomes

40%
Retention Lift

Reduced onboarding drop-off significantly compared to the old email flow.

1.2s
LCP Time

Largest Contentful Paint improved by 2.5 seconds on 3G networks.

99.9%
API Uptime

Robust error handling and Redis caching ensured high availability.