Mobile-First Invoicing Platform for Freelancers
LancerPay is a lightweight invoicing and client management product built for freelancers who need faster billing, cleaner client records, and dependable payment visibility without the complexity of full accounting software.

Role
Product Designer, Mobile Engineer & System Architect
Stack
React Native, Expo, TypeScript, NativeWind, SQLite
Timeline
Product MVP
Impact
Invoice creation under 30 seconds
The Problem
The Problem
Freelancers often juggle clients, invoices, reminders, and payment follow-ups across chat apps, spreadsheets, and document templates. That fragmented workflow creates delays, missed follow-ups, and poor cash-flow visibility.
- Client details scattered across multiple tools
- Invoice creation depended on manual templates
- Payment status and follow-ups were easy to miss
The Solution
The Solution
LancerPay was designed as a mobile-first product that centralizes freelance billing into one flow: manage clients, generate invoices, track status, and trigger reminders from a lightweight interface optimized for speed.
- Fully local invoice and client workflows
- Clear pending, paid, and overdue tracking
- Biometric lock for device-level app protection
System Architecture
Fully local architecture for privacy and reliability
Presentation Layer
React Native screens and reusable UI components were designed for a fast mobile workflow with minimal cognitive load.
Security Layer
Biometric lock adds an extra layer of protection so sensitive freelance finance data stays private on the device.
Technology
Lean stack with room to scale
React Native + Expo
Used to ship a mobile-first product quickly while keeping iteration speed high during MVP development.
TypeScript
Provides safer domain modeling for invoices, payments, reminders, and local security states.
NativeWind
Enables fast UI composition while preserving consistent visual patterns across the app.
SQLite
Handles fully local persistence for client profiles, invoice records, and payment tracking without a cloud dependency.
$ cat race_condition_analysis.md
"The primary challenge was managing the 5-minute inventory lock. I initially used local state, but migrated to distributed Redis locks to support horizontal scaling across regions."
$ tail -n 5 lessons_learned.txt
1. Optimistic locking > Pessimistic for UX.
2. Edge functions reduced latency by 140ms.
3. Third-party API reliability is the biggest variable.
Challenge
Keeping the app lightweight while planning for growth
The hardest product decision was balancing fully local data storage, PDF generation, reminders, and biometric protection without letting the mobile app become bloated or feel like accounting software disguised as a freelancer tool.
<30s
invoice creation flow
1
unified freelancer workspace
offline
core workflow support