Anu Kama

Selected work, 03

Stretch, a budget app on sale now.

Stretch answers one question: how much can I spend before my next payday and still cover my bills? It runs on your phone with no account and no bank login. The first version went on sale the day after I started it, and I have kept improving it since.

115tests the money math passes before any release

12bank statement formats it reads

0servers holding anyone's money data

See it run

Open the demo. It runs the real app with made-up numbers, so you can tap through it without buying anything. The paid version is in the NoFussApps shop on Etsy.

The Stretch home screen showing the amount that is safe to spend
The home screen, with sample numbers.
Stretch setup, step 1 of 9, asking how often you get paid
Setup asks. It never assumes.

Sep 252026, on sale. First sale on October 2.

Where your numbers go

How Stretch handles your data You download a file from your bank. Everything after that happens on your phone: the importer reads the file, a detector finds the bills that repeat, the app works out what is safe to spend, and the result is saved on the phone. Nothing is sent anywhere. A file from your bank on your phone, and nowhere else Reads 12 bank formats Finds the bills that repeat Works out what is safe to spend Saves it on the phone

The dashed line is the whole privacy story. There is no arrow that crosses it going out.

The choices, and why

  1. No server and no account.

    People who buy budget tools do not want to hand over a bank login. So there is nothing to log in to. The app is a set of files your phone saves, and it keeps working with no signal. The cost is real: your numbers do not follow you to a second device on their own.

    0logins, 0 bank connections

  2. Money is counted in whole cents.

    Computers get decimals slightly wrong. Ten cents plus twenty cents can come out as a hair over thirty. In a budget app that is a bug a user sees. Every amount inside Stretch is a whole number of cents, and it only becomes dollars when it is drawn on the screen.

    A rule every part of the app follows

  3. The math never looks at the clock.

    "Until payday" depends on what day it is. If the math read today's date by itself, a test could pass on Monday and fail on Friday. So today is always handed in. That one rule is why every money rule can be tested against any date I choose.

    115tests, run before every release

  4. A failing test blocks the release.

    The deploy script runs the tests first. If one fails, it stops and nothing ships. A budget app that is wrong by a dollar has no reason to exist, so this is not left to memory.

    Checked by the script, not by me

  5. An offline app still has to update.

    An app that works with no signal does it by keeping its own copy of every file. Left alone, that copy never changes, and a buyer keeps last month's version forever. Each release stamps its own name on the saved copy, so the phone drops the old one on the next visit.

    One stamp per release

What broke

  1. I built the first version for myself.

    Version one worked the way I budget. It quietly held back $50 as a cushion. Setup asked for one bill. It assumed you are paid twice a month. Each of those was wrong for someone who is not me, and the first one changed a person's number without telling them.

    I rebuilt setup from what buyers of other budget tools praise and complain about. It now walks through nine steps, asks about every bill, and offers five ways to be paid. Nothing that changes your number is applied without asking.

    Sep 242026, the day before launch

What I would do next

  • Moving to a new phone means saving a backup file and loading it by hand. It works, and it is one more thing to remember.
  • You download the bank file yourself. A format Stretch does not know falls back to a screen where you point at the columns.
  • Sales are early. One product on sale shows I can finish and ship. It does not yet show that many people want it.

Each of these is a real gap today.