Skip to content
r://app

r://rabalance

Brand · Building · iOS · Android

RaBalance is a bookkeeping app for households and small businesses in Turkey, built to replace the spreadsheet those books usually live in. Recurring income and fixed expenses, periods that close on a cash-left figure, assets bought in gold or foreign currency, and a calendar that reminds before something is due. A book is kept in lira, US dollars, euros, pounds or Swiss francs, chosen when it is opened, and the app speaks Turkish, English and German.

Not released yet. It has been submitted to the App Store; when there is something to open, a link goes here.

What it keeps

The book runs on periods rather than calendar months. A period opens when the user says so and closes when they say so, and closing it freezes the cash left at that moment, so a later edit cannot quietly rewrite a month that was already settled.

Income and fixed expenses are templates, copied into each period and marked paid there. One-off expenses sit beside them under a category. Assets are recorded as purchase lots: what was bought, how much of it, and at what rate, with profit and loss measured against today's rate. A lot can be added or removed but never sold off in part, which is a deliberate limit rather than a missing feature.

There are eight units: lira, US dollar, euro, pound, Swiss franc, 24 and 22 karat gold, and the quarter gold coin. Every entry stores the rate it was recorded at, so the history keeps meaning what it meant on the day.

Local first, and it means it

There is no account. Not an optional one, and not an anonymous session running in the background either: the app has no sign-in at all. It opens without a network connection, because nothing it needs to show the book lives anywhere but the device.

The server holds exchange and gold rates and nothing else. Not a single row of anyone's ledger is on it. The app asks it for rates, whether this version is still supported, and whether newer code for the app is waiting, and none of those requests says who is asking.

Where the backup goes

To the user, never to the server. On an iPhone the app writes its backup into its own folder in the user's iCloud, by itself, whenever the book has changed and the app goes to the background. It keeps two generations, so a bad write never replaces the only good copy. On any device, the book can be exported as a file and kept wherever the user keeps files. Android's own device backup is expected to cover the app as well once an Android version is released.

The file is not encrypted, and the app says so next to the button. iCloud storage already belongs to the user's Apple ID, and a file that only opens with a server's help is not really an export. Whoever holds the file can read the book, which is the honest cost of the user owning it outright.

Why there is no account

There was one. Signing in bought exactly one thing, an encrypted copy of the book on the server, and moving the backup into the user's own iCloud made that copy redundant. An account that pays for nothing is just a form to fill in, so it went, and the server shrank to the rates. The code is kept for the day accounts come back with a reason of their own, like a book shared across a company.

Rates

A runner collects rates from several public sources every few minutes. Each publish drops the readings that disagree too far with the rest and takes a weighted median of what is left, so one broken source moves nothing. The device keeps a week of history and draws its 24-hour, 3-day and 7-day charts from it without asking the server while it draws.

What is built

The mobile app, with native controls from one codebase: SwiftUI on iOS and Jetpack Compose on Android. Only the iOS app has been submitted so far. Home screen widgets on iOS for cash left, the next payment due, rates and the portfolio. Reminders scheduled by the device itself, inside the active hours the user sets, and an onboarding tour that opens the first period.

Behind it: the rates API on Cloudflare Workers, the runner that collects the rates, a small admin for rate sources and anomalies, and an update server of its own that ships signed updates to installed apps without waiting on a store release.

What is left is getting it through the stores.