backpocket.website

← Back to the portfolio

The decision underneath every product here

Backpocket AI is not a model. It’s a cost architecture.

One rule: put the compute on the user’s own machine wherever it can physically go. What that buys is a marginal cost close to zero, which is the only honest reason a product can be free permanently rather than until a free tier runs out.

Solving problems people currently pay a monthly fee for, at almost no cost to run.

Where the compute actually happens

Every product names this on its own page, because “AI” that could mean either thing is the part people are right to be suspicious of.

Cut — on your machine

A 41MB transcription model is downloaded once and does the listening inside the tab. Nothing is sent, because there is nothing to send it to. Competitors bill per minute of audio; this is why Cut has no limits at all.

GuideGen — on your machine

A neural speech model runs in WebAssembly and narrates a 1080p video, muxed in the tab. The text of an internal process never reaches a speech service. Everyone else in that category rents GPUs for it.

Spot — on your machine, bar one fetch

The video is encoded with WebCodecs on the visitor’s laptop. One small edge function reads the target website, because a browser cannot: CORS blocks the request and a cross-origin image taints the canvas so the frame could never be encoded.

Wrapped — counted here, read elsewhere

Every number is counted in the page. Asking a model to interpret the chat is the one thing that leaves, it is opt-in, and the button names who receives it first.

The exception, named on purpose

Reading a whole WhatsApp export and having an opinion about it is more than a laptop does well, so that one request goes to a model service. It is optional, it is disclosed before you press anything, long digit runs and link tails are stripped first, and every reading has a Counted only button beside it that touches no network at all.

Why this paragraph exists

A page claiming everything is local, with an asterisk buried somewhere, is marketing. The exception is the thing that makes the other four claims believable — and the provider in that chain is chosen on its terms rather than its price, because a free tier that may train on the input would make the sentence on the page false. If the provider changes, the copy changes in the same commit.

What I turned down, and why

  1. Chrome’s built-in on-device model

    Free, local, and the obvious fit for everything above. I tested it and rejected it: shaky prose sitting beside counted numbers makes the numbers look invented. A product whose job is to be trusted with a count cannot afford an occasionally eloquent narrator. The step text in GuideGen is read from the page’s own accessibility labels instead — exact, free, and offline for a different reason.

  2. Shipping a large model of our own

    About a gigabyte per visitor of bandwidth. Cut’s 41MB is already the first real hosting bill in the house, and the whole point of this architecture is that success does not arrive as an invoice.

  3. A headless browser in Spot’s one server function

    It would make screenshots possible and bring a Chromium launch, several seconds and a real per-ad cost with it. Spot’s ads are type, colour, icon and logo, so the function stays an HTML fetch that finishes in a few hundred milliseconds. That is a product decision wearing a technical disguise.

So the products are free, and it isn’t generosity

Anything that renders in the cloud has to upload your file first and has to charge you for the compute. That is not a pricing choice, it is the bill arriving. Move the render into the tab and both of those disappear at once — the privacy claim gets easier to make and there is nothing left to meter.

Which is the part worth taking to work: the interesting question is rarely which model. It is where does this run, who pays for it, and what does that force us to promise the user.

See the four products · The one that would cost the most to run