Role
Solo Build (on Abdul's Figma design)
Year
2026
Tech Stack
7 Technologies
Status
Completed
Overview
Most independent tailors still track customer measurements in paper notebooks — easy to lose, painful to search, impossible to share with an apprentice or backup. Existing apps push cloud accounts and subscriptions, a non-starter for tailors who work offline and don't want their customer data on someone else's server. Tailor Pad is a React Native app where a tailor defines reusable measurement templates (Agbada, Two-piece, etc.), creates customers under each template, and fills in their values — all stored locally on the device. No account, no sync, no telemetry. Password-locked with hardware-backed crypto, one-tap PDF export over WhatsApp, and schema-versioned JSON backups for moving phones. Open-sourced under MIT.
The Problem
Most independent tailors still track customer measurements in paper notebooks — easy to lose, painful to search, impossible to share with an apprentice or backup. Existing apps push cloud accounts, subscriptions, or both — a non-starter for tailors who work offline and don't want their customer data on someone else's server. There was nothing that was simply a measurement book that lives on the phone. Tailor Pad is exactly that.
Screenshots

Challenges
Storing personally identifiable data (customer names plus body measurements) on-device under Nigeria's NDPA — without a backend security team to lean on, and without falling back on a cloud provider's compliance halo.
First time writing React Native — needing to ship a polished v1.0 on someone else's Figma design, not a tutorial-grade prototype.
A draggable template field editor with swipe-to-delete kept fighting the scroll gesture on Android, breaking the core editing flow.
Solutions
Wrote an explicit threat model (docs/security/threat-model.md) scoped to realistic risks — shared phones, lost devices, malicious sideloads — and mitigated each: password lock with salted SHA-256 via expo-crypto, salt + hash in iOS Keychain / Android Keystore via expo-secure-store, no analytics SDK, no remote logging, and an incident-response runbook before launch.
Leaned on Expo's batteries-included surface (typed router, secure store, print, sharing) instead of bare RN, kept state simple with Zustand, and pinned every new pattern (typed routes, persist middleware, Reanimated worklets) to one screen first before rolling it across the app.
Replaced the hand-rolled gesture handler with react-native-draggable-flatlist and moved swipe actions onto Reanimated worklets — cleaner code, no jank on mid-range Android.
Key Highlights
Offline by Design: AsyncStorage + Zustand persist middleware, zero network calls, zero accounts. Works on a plane, works in a market with no signal.
Hardware-Backed Password Lock: Salted SHA-256 via expo-crypto, salt and hash stored in iOS Keychain / Android Keystore through expo-secure-store. Never plaintext, never recoverable.
One-Tap PDF Export: expo-print renders a clean measurement sheet from the customer record; expo-sharing hands it straight to WhatsApp or email — no copy-paste, no screenshots.
Schema-Versioned Backups: Zod-validated JSON export/import lets a tailor move to a new phone or hand off data to an apprentice without typing 200 measurements twice.
Scale & Scope
~4,900
Lines of TypeScript
17
Screens (expo-router)
5
Zustand Stores
15
Unit Tests
~2 days
Figma to Signed APK
Technology Stack
Outcome
Shipped as a v1.0.0 signed APK, open-sourced under MIT, and announced publicly for tailors to sideload. Currently in Public Beta — Play Store and App Store submissions are next; feedback and PRs are open via GitHub Issues.

