Technical architecture
TBox's own native iOS expense-tracking app — fully offline, zero backend, with on-device OCR receipt scanning, voice input, and StoreKit 2 subscription monetization.
Product screenshots
Tech stack
Engagement
Technical highlights
Spendlio was designed around a single constraint: it must work completely offline. Every expense, receipt, and budget is stored in Core Data on the device — iCloud sync is opt-in and handled through NSPersistentCloudKitContainer, which reconciles changes when connectivity returns. There is no API server, no user account, and no data ever leaves the device unless the user explicitly enables iCloud. The result is instant load times, zero latency on writes, and complete data ownership for the user.
Rather than sending receipt images to a cloud OCR service, Spendlio processes them entirely on-device using Apple's Vision framework. VNRecognizeTextRequest extracts merchant names, line items, and totals from photos in under a second on any modern iPhone. The recognized text is parsed through a lightweight rule engine that maps common merchant patterns to expense categories — no ML training pipeline, no API costs, no privacy tradeoffs.
Monetization runs through StoreKit 2's modern async/await API — cleaner transaction handling, built-in entitlement management, and server-to-server notifications for renewals and cancellations without a custom backend. Product configuration, pricing, and subscription groups are all managed through App Store Connect. Entitlement status is validated locally against the signed transaction receipt, so there is no server round-trip on app launch.
Spendlio is our engineering benchmark — every pattern we recommend to clients, we've validated here first. Happy to walk through the architecture on a call.
Start a conversation →