Know what you can spend today.

Pace turns your day into one honest number: what is left of your daily budget. Logging takes seconds, the ledger never leaves your device, and AI only helps when you ask it to.

9:41
Pace
Today · Oct 27 Within budget
Left to spend
¥132.00
Budget ¥200.00 · Spent ¥68.00
Today2
Lunch
Food & drink · 12:30
−¥32.00
Bus
Transport · 08:15
−¥36.00
Today2
Lunch
Food & drink · 12:30
−¥32.00
Bus
Transport · 08:15
−¥36.00
Yesterday · Oct 262
Groceries
Shopping · 18:40 · not counted
−¥56.00
Salary
Income · 09:00
+¥8,500.00
This monthOctober
¥1,284.00
¥68.00Today
¥312.00This week
¥1,284.00Month
2Overspent
By categorymonth
Food & drink42%¥539
Transport23%¥295
Shopping18%¥231
Other17%¥219
Daily budget¥200.00
Count in today's budget
AI one-sentence entryOff
Export JSONv1 · local
About Pacev0.1.0

How it works

One number, three moves.

01

Set today's budget

One amount per day. Change it starting tomorrow — Pace never rewrites your history, and nothing rolls over unless you decide it should.

02

Log in seconds

A floating button opens a two-tap form. For every entry you choose whether it counts toward today — refunds link back to the bill they reverse.

03

See what's left

Budget minus what you chose to count today. Overspent? The number turns red and says so. No smoothing, no spin.

Features

Small app, few opinions, held firmly.

Money in is green

A budget you can trust

Today's remaining = budget − the net spend you chose to count. Transfers and card repayments are kept apart from spending, refunds don't double-count, and every amount is stored as an integer of the smallest currency unit — never a floating-point guess.

Stats, not sermons

Numbers with their receipts

Today's bills, week and month totals, category ranking, overspend log — with budget-in spend and all spend kept separate. Every figure is computed by deterministic code on your device; an AI may explain a number, never invent one.

AI, optional by default

It drafts. You confirm.

Turn on the assistant and it can turn one sentence into a bill draft, or explain a figure it is shown. It cannot write to your ledger without your confirmation, cannot bypass it, and is never the source of truth.

Local-first

Your ledger, literally yours

No account, no cloud ledger, no analytics. Everything works offline, and a full-fidelity JSON export is one tap away — the same format, versioned, that imports cleanly on a new device.

Privacy

Local-first is a promise,
not a setting.

There is no cloud to breach.

The ledger lives in an on-device database. No account is required, no copy is uploaded, and logs never contain your bills, notes, or keys. Deleting the app deletes the data — by design, and stated where you'll see it.

AI has a fixed job description.

Draft input, explain output. Off until you turn it on, unable to write without your confirmation, and the gateway it talks to is not allowed to keep your ledger.

Export is the escape hatch.

A versioned JSON format, documented publicly, with every bill, category, and budget in it. Your data should outlive the app — and the format shouldn't be a secret.

Under the hood

Two native apps. One arithmetic.

Pace for Android is Kotlin + Compose. Pace for iOS is Swift + SwiftUI. Neither shares a line of UI with the other. What they share is the part that must never disagree — budget math, money and date rules, import/export, duplicate detection — a Kotlin Multiplatform core with 48 fixed acceptance tests both platforms must pass.

Android Kotlin · Jetpack Compose · Room · Keystore · WorkManager
shared Kotlin Multiplatform — budget engine · money rules · import/export · dedupe · 48 acceptance tests
iOS Swift · SwiftUI · SwiftData · Keychain · WidgetKit · App Intents

Install

Early builds, straight from CI.

Pace is in active development (v0.1.0). Every push produces installable artifacts on GitHub Actions — no store listing yet, so builds are installed by hand.

BuildArtifactInstall with
Androiddebug APK pace-android-debug-apk Download from a run's Artifacts, install on the device
iOSunsigned IPA pace-ios-unsigned-ipa Self-sign with AltStore / Sideloadly
iOS Simulatorsimulator app pace-ios-simulator-app Unzip, drag into Simulator

Grab them from the Actions page of the latest run. Building from source? The README has the Gradle and XcodeGen commands.

Know what you can spend today.

Set tomorrow's budget tonight. Log lunch in four seconds. And let one quiet number answer the only question a daily budget needs to answer.