← All sheets
GL-P-025Sheet 025FOR CONSTRUCTIONP · PRODUCT

Zero users should cost zero dollars.

SECTION · COST AT ZERO · READING APP · HOSTING

Drawing sheet 025: Zero users should cost zero dollars.

General notes

  1. 01Heavy work (parsing documents, scanning for hidden characters) is compiled into the app in Rust and runs on the user's device.
  2. 02Serverless functions handle short bursts. A hosted Postgres stores small text. Audio never arrives.
  3. 03The bill scales with users who pay, not users who try. That was the design goal before any feature was.
The device
Rust core · parsing · sanitising
Edge functions
short bursts only
Hosted DB
small text · auth

As posted

The bill for a product with zero users should be zero. Most bills are not, and the shape of the bill is a design decision made long before anyone signs up.

The reading app I build costs about nothing to run with nobody using it, on purpose. The heavy work, parsing documents and scanning them for hidden characters, is compiled into the app itself in Rust and runs on the user's device. Serverless functions handle short bursts, like fetching a URL. A hosted Postgres stores small text. Audio never arrives, so it never has to be stored or transcribed on my account.

The result is a cost curve that scales with users who pay, not users who try. That was the goal before any feature was.

Most bills I see have the opposite shape. A free tier subsidised by hope. A vector database running at three in the morning for nobody. A transcription API charged per minute of other people's meetings. None of those are mistakes in the code. They are boundaries drawn in the wrong place: work that could have stayed on the device was moved to a server, and the server sends invoices.

Two questions decide the shape before the architecture does. What is the bill at zero users? And at ten thousand, is the curve flat, linear, or a cliff?

Sheet 025. Cost is a boundary too.

Read with

  • Sheet 024 · The audio never leaves the phone. That is the whole architecture.