Case study · Mobile apps
Money App
Personal finance app: automatic MB Bank transaction sync, auto-categorisation, iPhone home-screen widgets and a 50/30/20 budget.
- Role
- Personal project
- Period
- 2026
- Company
- Personal
- Status
- In development
Context
Everyone gives up on logging expenses by hand. This app pulls transactions straight from an MB Bank account, categorises them, and puts the budget on the iPhone home screen.
Problems & solutions
- 01
Three parts, three languages
A Node/TypeScript service talks to MB Bank, a Laravel 12 API handles sync, categorisation, budgets and APNs push, and a native iOS app is written in SwiftUI with WidgetKit widgets and App Intents.
- 02
No bank credentials on the device
MB Bank login details are sent straight to the backend over HTTPS and stored only in encrypted form in the database. The iOS app never stores bank credentials — only a Sanctum token in the Keychain. Hard-coded credentials and IPs in the old service were removed before the first commit.
- 03
Acting from the home screen
A WidgetKit widget shows spending at a glance. Three App Intents — add a transaction, change a category, see today's spending — work without opening the app. The widget has its own snapshot tests.
Outcomes
- In development: the MB Bank service, the Laravel backend and the SwiftUI iOS app all have working source code.
Personal, single-user project. The source code is private.
Next project