
Taotin TradingKiribati
ooda — a mobile storefront for Taotin Home Service
iOS and Android apps selling Taotin Home Service's products, built in Flutter on an edge backend with bank card payments. Four systems that each have to hold up on their own: two app stores, a serverless runtime, a serverless database and a bank gateway.
- Flutter
- iOS & Android
- Cloudflare Workers
- Neon Postgres
- ANZ eGate
The problem
Taotin Home Service needed to sell from a phone rather than a counter, which meant shipping to the App Store and Google Play together, taking card payments through a bank that actually operates in the region, and doing all of it from Kiribati — thousands of kilometres from the nearest major cloud region, where a round trip to a distant origin server is felt on every tap.
What we built
ooda is a Flutter application, so iOS and Android ship from one codebase and stay in step release to release instead of drifting into two products maintained by two teams.
The backend runs on Cloudflare Workers rather than a conventional server, so requests are answered at an edge location near the customer instead of travelling to a distant data centre and back. That choice constrains everything downstream: an edge runtime cannot hold the long-lived TCP connections a normal Postgres driver expects, so the database is Neon, a serverless Postgres the Workers reach over HTTP.
Payments go through ANZ eGate, the bank's own gateway. That is the part with the least room for error — the payment completes outside the app, so the integration has to cover the hosted payment flow, the return journey back into the app, and callback handling that reconciles an order against a transaction the app never directly observes.
The outcome
ooda is live on both stores, serving Taotin Home Service's catalogue from an edge backend with card payments settled through ANZ. Not a storefront bolted onto a website — a full mobile commerce stack, with the release pipeline and payment reconciliation that implies.

