2024 · Team · Archived
Airlipay
Earned-wage access for employees through their employer: NestJS and Prisma backend, Expo apps, CI with automated tests.
Mission
A fintech app that lets employees access wages they have already earned before payday, through their employer. Payroll math that has to be right, on a phone, for people who need the money today.
For whom: employers and their staff. Constraints: a team of three, both app stores, and a launch date in September 2024.
Manifest
| Layer | Choice | Version | Why |
|---|---|---|---|
| services | NestJS | — | Payroll rules and withdrawal limits in one typed service. |
| data | PostgreSQL + Prisma | — | Ledger-style tables with migrations in git. |
| app | React Native + Expo | — | Both stores from one codebase. |
| infra | GitHub Actions + Grafana | — | Tests on every push; dashboards before launch. |
Decisions
NestJS + Prisma on PostgreSQL. Earned-wage calculations live server-side; the apps only display.
React Native with Expo. One codebase for both stores; EAS builds instead of a Mac in the loop.
GitHub Actions with automated tests. Every payroll rule has a test before it has a screen.
Grafana monitoring and onboarding docs. So the next engineer could run it without me.
Impact
- Stores
- Play Store, App Store
- Time to launch
- 3 months
Launched September 2024 on the Play Store and App Store; handed over in January 2025 with monitoring and onboarding docs in place.
What broke
The first thing I would fix: the earned-wage calculation depends on employer payroll data arriving on time, and the first version treated a late upload as "zero earned" instead of "unknown". The fix is to make the state explicit and block withdrawals until the data lands.
Ship log
- Started
- Launched on Play Store and App Store
- Handed over with monitoring and docs