Home All posts →

PocketBill Blog

Ten Gigabytes Before One Line of Code

Published 2026-10-08 · PocketBill team

PocketBill is built so that it asks you for nothing: no account, no setup, your subscriptions and bills just sit on the device. The tooling that produces it asks for everything first. Reading a build guide end to end, I realised the checklist is not a setup step — it is an invoice for work I chose to do on my side of the line.

The evening I meant to spend on one line

PocketBill has one job: tell me what my money is actually doing, without asking me for anything first. No account, no sign-in, no setup screen. Your subscriptions and bills live on the device and are simply there when you open it, even with the network off. That is the most deliberate decision in the entire app.

So last night, when I sat down to change one small thing about how a recurring subscription displays, I budgeted twenty minutes. I spent the evening installing a Java runtime instead. The line of code was never the hard part. Getting the machine to the point where it would accept the line of code was.

The checklist is a list of evenings

The build guide for the Android side of my setup lists its requirements the way a landlord lists a deposit. A 64-bit Windows machine. Eight gigabytes of memory, sixteen recommended. Ten gigabytes of free disk. A cross-platform toolkit pinned to one exact version. Java 17 or newer. An SDK, its build tools, an emulator for testing, and two directories added to PATH so that the tools can find each other.

It reads like a checklist you complete once and then forget. It is not that. Each line is somewhere an evening can go, and you do not find out which line until you are standing on it. The disk space is fine right up until it isn't. The Java version is irrelevant until the one you already have makes a build tool refuse to start, with an error that mentions nothing useful.

Every fix in the guide is a scar

The best chapter is the one listing problems and solutions, because every pair is a scar somebody earned. Dependency downloads time out, and the fix is pointing two environment variables at a regional mirror. The compiler runs out of memory, so you raise the build heap to four gigabytes and compile one architecture at a time. The release build cannot find the signing key — because the signing key was never created. Here is the exact command, and here is the reminder to keep it out of version control so it never leaks.

Firebase does nothing until a configuration file sits in precisely the right folder and a certificate fingerprint is registered in a console. None of these are bugs in anybody's code. They are the terrain. Someone lost each of those afternoons before writing them down, which is the only reason the list exists at all.

Why the app asks you for nothing

This is the part I keep returning to when I go back to PocketBill. The entire promise of the product is that you pay none of it. No account to create, no configuration screen, no service that must be reachable before your own numbers appear. Somebody has to absorb that cost, and the honest answer is: me, at eleven at night, in a terminal.

So the checklist stays, filed under things I have already paid for. Not as a setup step to complete, but as an invoice for friction I chose to carry on my side of the line, so that opening the app stays a one-second decision. That is the whole trade. It simply looks better from the user's side of it.

indie-devbuild-systemsdeveloper-experiencelocal-firstproduct-thinkingpocketbill
Track it once, see it forever.
Add your first subscription or expense in PocketBill — no account required.