Brokely
A student-first expenditure planner for Android, with a broccoli mascot that grows from good money habits.
- Year
- 2026 – present
- Role
- Solo developer and product owner
- Links
- Code on GitHub ↗
Release 0.1 is in testing, with a first pilot planned at AIU.

No browser demo yet: Brokely is an Android app, with release 0.1 in testing.
The problem
University students need to plan spending, cover essentials like meals and laundry first, and track money owed between friends, without bank logins or a shaming tone.
The solution
Brokely is an offline-first Android app for planning student spending. It works without a connection, syncs safely when one returns, and rewards good habits with a broccoli mascot that grows.
- Home screen with the broccoli mascot.
- Quick-add keypad for logging a purchase.
- Insights with a spending doughnut chart.
- Bills tracking.
- Backup and sync status.
Technical decisions
Money as whole sen
Money is stored as whole sen, never floating-point ringgit, with rounding only for display.
Business rules traced to a specification
Every business rule lives in a pure, unit-tested domain package, traced to requirement IDs in a written specification.
Offline-first sync
Every record is written with a phone-generated ID through an outbox, then synced to a Fastify and PostgreSQL API with idempotent pushes and conflict handling. I tested the sync between two simulated phones.
Automated deployment
The API deploys automatically to Azure Container Apps from GitHub Actions. The repository is a pnpm monorepo with separate app, API, domain, contracts and local-database packages.
Stack & credits
- React Native
- Expo
- SQLite
- Drizzle
- Fastify
- PostgreSQL (Supabase)
- Zod
- Vitest
- GitHub Actions
- Azure Container Apps
Mascot artwork is AI-generated.